下载并安装 Nacos

1. 下载并安装 Nacos

1.1 下载 Nacos

你可以从 Nacos 的 GitHub 发布页面(Nacos官网| Nacos 配置中心 | Nacos 下载| Nacos 官方社区 | Nacos 官网 )下载最新的稳定版本。选择合适的压缩包(如 .zip 或 .tar.gz)进行下载。

1.2 解压文件

将下载好的压缩包解压到指定目录,例如 /opt/nacos 。以 Linux 系统为例,解压命令如下:

unzip nacos-server-$version.zip -d /opt/nacos

这里的 $version 需替换为你下载的具体版本号。

1.3 启动 Nacos

Nacos 有单机模式和集群模式,这里以单机模式为例启动。进入 Nacos 的 bin 目录,执行启动脚本:

cd /opt/nacos/bin
sh startup.sh -m standalone
1.4 验证启动

启动成功后,在浏览器中访问 http://localhost:8848/nacos ,使用默认用户名 nacos 和密码 nacos 登录 Nacos 控制台。

2. 创建 Spring Boot 项目

你可以使用 Spring Initializr(https://start.spring.io/ )来快速创建一个新的 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Spring Cloud Starter Alibaba Nacos Discovery

3. 配置 Spring Boot 项目

在 application.properties 或 application.yml 中添加 Nacos 相关配置。以下是 application.yml 的示例:

spring:
  application:
    name: your-application-name
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

4.nacos的配置文件

Nacos 的配置文件位于其解压后的conf目录下。以下是一些主要配置文件:

  • application.properties:Nacos 单机启动配置文件,用于配置 Nacos 的一些基本参数,如服务端口、数据存储路径、数据库连接信息等。
  • application.properties.example:单机默认配置文件,提供了一些默认的配置示例。
  • cluster.conf.example:Nacos 集群默认配置文件,用于配置集群相关的参数。
  • nacos-logback.xml:日志配置文件,用于配置 Nacos 的日志输出格式、级别等。

5.nacos必须要数据库才能启动吗

Nacos不必须要数据库才能启动。

Nacos 有两种数据存储方式:内嵌数据库和外部数据库。当使用内嵌数据库时,Nacos 可以直接启动,无需额外配置外部数据库。这种方式适用于开发测试环境,方便快速搭建 Nacos 服务。

但是,在生产环境中,为了保证数据的可靠性和稳定性,通常会使用外部数据库来存储 Nacos 的配置信息和服务注册信息等。此时就需要配置好外部数据库的连接信息,Nacos 才能正常启动并将数据持久化到外部数据库中。

动态刷新实现原理

Nacos 实现动态配置更新主要基于长轮询机制。客户端(微服务)在启动时会向 Nacos 服务器注册并获取配置信息,同时客户端会与 Nacos 服务器建立长轮询连接。当配置发生变化时,Nacos 服务器会记录配置的变更信息,当客户端发起长轮询请求时,服务器会将变更信息返回给客户端,客户端接收到变更信息后,会重新从服务器获取最新的配置并更新本地配置。

实现流程

  1. 客户端启动:微服务启动时,会从 Nacos 服务器获取初始配置信息,并与 Nacos 服务器建立长轮询连接。
  2. 配置变更:在 Nacos 控制台或通过 API 修改配置信息。
  3. 服务器通知:Nacos 服务器检测到配置变更后,会记录变更信息。当客户端发起长轮询请求时,服务器将变更信息返回给客户端。
  4. 客户端更新:客户端接收到变更信息后,会重新从 Nacos 服务器获取最新的配置信息,并更新本地配置。

在 Spring Boot 项目中的实现示例

1. 添加依赖

在 pom.xml 中添加 Spring Cloud Alibaba Nacos Config 依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 配置 Nacos 信息

在 src/main/resources 目录下创建 bootstrap.properties 文件,添加以下配置:

spring.application.name=your-application-name
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties
3. 使用 @RefreshScope 注解

创建一个控制器类,使用 @RefreshScope 注解支持配置的动态刷新:

nacos-dynamic-config-exampleNacos 动态配置更新示例

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RestController
public class DynamicConfigController {

    @Value("${cache.expire.time:3600}")
    private int cacheExpireTime;

    @GetMapping("/cacheExpireTime")
    public int getCacheExpireTime() {
        return cacheExpireTime;
    }
}    
4. 测试动态配置更新
  • 启动 Spring Boot 项目,访问 /cacheExpireTime 接口,获取初始的缓存过期时间。
  • 在 Nacos 控制台修改 your-application-name.properties 配置文件中的 cache.expire.time 属性值。
  • 再次访问 /cacheExpireTime 接口,你会发现返回的缓存过期时间已经更新为最新配置的值,无需重启服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨会停rain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值