Windows 搭建 Nacos 注册中心和配置中心

1.Nacos 服务(Server)

Nacos 官网 下载 nacos-server-$version.zip 包,解压到指定目录。

Windows 中,打开解压目录下的 \bin\startup.cmd 启动服务。
在这里插入图片描述
Nacos 服务占用内存近 2G,对资源要求很高。

启动成功后,Nacos 服务就运行起来了。在浏览器中输入 http://127.0.0.1:8848/nacos/index.html,就可以打开 Nacos 控制台:
在这里插入图片描述
使用默认账号密码(nacos/nacos),就可以登陆控制台:
在这里插入图片描述

启动过程中可能会出现的问题

下载最新的 Nacos 版本在 Windows 直接运行脚本启动,首先报错第一个问题如下:

java.lang.IllegalArgumentException: db.num is null
java.lang.RuntimeException: [db-load-error]load jdbc.properties error
解决方法

将 Nacos 下的 conf/application.properties 文件修改如下图所示
在这里插入图片描述
其中的用户名密码改成自己mysql的用户名和密码

新建本地数据库 Nacos,执行 conf/nacos-mysql.sql 文件,确保本地数据库有此信息
在这里插入图片描述
继续运行 startup.cmd 文件,继续出现主要报错如下所示:

Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat

Unable to start embedded Tomcat

Error creating bean with name 'distroFilterRegistration' defined in class path resource

Error creating bean with name 'distroFilter'

java.net.UnknownHostException: jmenv.tbsite.net
解决方法

打开启动脚本文件 startup.cmd,修改如图所示即可

将这个set MODE配置修改为:set MODE=“standalone”,就是单机版模式
set MODE="cluster"为集群模式,根据自己需要修改在这里插入图片描述

2.Nacos 客户端

在基于 SpringBoot 微服务工程中,搭载 Nacos 客户端,实现配置管理

2.1 添加依赖

<!--nacos config-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
   <version>2.2.5.RELEASE</version>
</dependency>

2.2 添加配置

新建 bootstrap.yml

spring:
   nacos:
    discovery:
       server-addr: 127.0.0.1:8848
       group: DEFAULT_GROUP #分组名称 不指定默认DEFAULT_GROUP  可以通过使用不同的组,来读取不同的配置
    config:
       refresh-enabled: true  #自动刷新配置
       file-extension: yaml  #配置文件后缀
   profiles:
        active: dev #开发模式
    application:
        name: nacos-service
server:
    port: 8080

这里配置的 spring.application.name,会作为 Nacos 配置管理 dataId 字段的一部分。dataId 的完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}
符号名说明
prefix默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
spring.profile.active当前环境对应的 profile。当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}。
file-exetension配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

2.3 启动类

@SpringBootApplication
public class NacosApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosApplication.class,args);
    }
}

2.4 配置项

在实际的 Spring Bean 类中,加入业务工程所需要配置项。形如:

@RestController
@RefreshScope
public class ConfigController {

    @Value("${config.apps}")
    private String apps;
    
 	@GetMapping("hi")
    public String test(){
        return apps;
    }
}

首先在业务类上加入 @RefreshScope,这样当配置中心的配置值发生变化时,业务类所引用的值就会自动更新。

接着通过 @Value 将外部的配置项值动态注入到该 Bean 中。通过冒号语法,可以给配置项指定一个默认值。

2.5 启动

在这里插入图片描述
这样Nacos 客户端就配置好了

3 配置中心

从架构图上可以知道,Nacos提供了两种服务,一种是用于服务注册、发现的Naming Service,一种是用于配置中心、动态配置的Config Service,而他们底层均由core模块来支持。外层提供OpenAPI供客户端使用,并提供了User Console、Admin Console方便用户使用 。
在这里插入图片描述
用户通过管理平台发布配置,通过HTTP调用将配置注册到服务端,服务端将之保存在MySQL等持久化存储引擎中;用户通过客户端SDK访问服务端的配置,同时建立HTTP的长轮询监听配置项变更,同时为了减轻服务端压力和保证容灾特性,配置项拉取到客户端之后会保存一份快照在本地文件中,SDK优先读取本地文件里的配置。当服务端的配置发生变更时,客户端会通过监听机制,拿到变更后的最新配置信息。
在这里插入图片描述

3.1 新建配置

点击加号增加配置
在这里插入图片描述
增加两个配置
nacos-server-dev.yaml
在这里插入图片描述
nacos-server.yaml
在这里插入图片描述

在这里插入图片描述
上图中nacos-server.yml是不起作用的,nacos-server.yaml和nacos-server-dev.yaml是都可以的,优先使用xx-dev.yaml配置文件的值,即:当xx-dev.yaml存在时用xx-dev.yaml配置的值,当xxx-dev.yaml不存在且xxx.yaml存在时使用xxx.yaml配置的值

另:如果配置了spring.cloud.nacos.config.namespace,则一定要配置在相对应的命名空间里

3.2 测试

使用 GET 方式请求以下地址:

http://127.0.0.1:8080/hi
在这里插入图片描述

请求成功后,就会返回 nocos-dev

到此 Nacos 注册中心和配置中心搭建完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是胡小结

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

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

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

打赏作者

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

抵扣说明:

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

余额充值