使用 nacos 搭建注册中心及配置中心
本文为博主原创,转载请注明出处:
在分布式微服务框架中,现在都流行使用 nacos 作为分布式框架的注册中心与配置中心。当我们搭建一套spring boot 框架的时候,默认会将配置文件
放在 resources 的配置目录下有bootstrap.yml 及application-dev.properties 配置文件进行管理,包括数据库配置,端口配置等等。
现在使用 nacos 便可实现服务注册 与 配置管理的功能。
nacos 提供的中文网址连接如下:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html
具体步骤如下:
1.在项目中引入nacos 以及spring boot web启动的相关的依赖:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <relativePath/> </parent> <properties> <java.version>1.8</java.version> <spring-boot.version>2.2.8.RELEASE</spring-boot.version> <spring-cloud.version>2.2.2.RELEASE</spring-cloud.version> <spring-nacos.version>2.2.1.RELEASE</spring-nacos.version> </properties> <dependencies> <!--web启动--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> </dependency> <!--nacos-config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${spring-nacos.version}</version> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${spring-nacos.version}</version> </dependency> </dependencies>
2.在项目配置 bootstrap.yml 文件中配置配置中心:
其中有一个默认组group的属性,如果不配其默认值为 DEFAULT_GROUP
spring: application: # 服务名称尽量用-,不要用_,不要用特殊字符 name: test2 cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml
3.本地安装并启动 nacos
nacos 默认的用户名和密码都为 nacos 。 在nacos 管理台进行配置中心的配置:
配置管理 ---〉配置列表 ---- 〉点击加号 进行创建
点击加号进行配置
dataId 为项目框架中 bootstrap.yml 中的 spring.application.name 的配置值。
之于项目中 为什么要配置 bootstrap.yml 中配置application.name 以及项目启动如何匹配对应的配置文件列表,其缘由在nacos 中文网址给了说明:
进行启动,通过观察项目启动的端口号判断是否正确使用配置中心的配置,若未正确加载,则项目启动成功的端口号则为默认的8080,
若正确加载,则项目启动的端口号为配置中心的端口号:
4.配置中心使用命名空间区分环境
spring boot 项目中,常使用 application-dev.properties, application-test.properties, application-prd.properties等方式指定不同环境下的配置文件。
nacos配置中心可以创建命名空间,区分不同的环境类型。
创建之后,会在配置列表看到 dev 的 tab 列表
在列表中创建对应的配置,我这边创建的简单的配置如下:
在项目代码的配置文件中指定命名空间以及 环境类型就可加载使用,在bootstrap.yaml中配置如下:
namespace 的值为nacos 中命名空间的ID的值
spring: application: # 服务名称尽量用-,不要用_,不要用特殊字符 name: test1 profiles: active: dev cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml group: DEFAULT_GROUP namespace: 9f471483-5467-4077-81ae-b7ddb6cf2248
本地项目启动加载配置,通过启动日志观察服务端口便可判断配置是否加载:
注意事项:
1.在配置过程中,需要注意 pom中的 spring-boot-starter-parent 与 spring-boot-starter-web 两者的版本号相差不能太大,相差太大,容易导致启动报错,某些类 ClassNotFoundException等
2.需要在项目的配置文件中指定项目名称
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击