本文主要是介绍吐血整理nacos 作为springcloud的配置中心和注册中心,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
吐血整理nacos 作为配置中心和注册中心
- 环境版本
- nacos 版本
- nacos启动
- 单机模式启动
- 配置数据库
- Spring cloud 连接注册Nacos
- 配置中心
- 导入依赖
- 注册中心
环境版本
SpringBoot版本 | SpringCloud版本 | cloud Alibaba版本 |
---|---|---|
2.6.13 | 2021.0.5 | 2021.0.5.0 |
参照依据
spring-cloud-alibab 对应版本说明
nacos 版本
nacos-server-2.4.2
nacos启动
单机模式启动
下载解压之后
nacos 启动需要注意一个点,Nacos2 之后的版本启动时都是默认集群模式,没有集群环境的话,启动会失败!!
如果我们需要单机启动的话,方法有两种。
- 需要修改 bin/startup.cmd 文件。set MODE=“standalone”
- 启动时,添加参数。 进入cmd环境。
startup.cmd -m standalone
配置数据库
- 执行 /conf/mysql-schema.sql 数据库脚本
- 修改 /conf/application.properties 的数据库连接
Spring cloud 连接注册Nacos
父pom依赖
<properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version><spring-cloud.version>2021.0.5</spring-cloud.version></properties><dependencies><!-- SpringCloud 微服务 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- SpringCloud Alibaba 微服务 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
配置中心
这个地方巨坑,一堆注意的点。
导入依赖
<!-- 配置中心依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!-- 加上这个才可以启动 识别bootstrap.yml 作为启动配置文件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>3.1.8</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
spring-cloud-starter-bootstrap 这个依赖注意
整个项目一目了然,User 类读取n=Nacos上的配置文件,在定义一个接口进行输出内容。我也就不过多解释了。
- 配置spring cloud 不同环境配置注意点
bootstrap.yml
bootstrap-dev.ymlspring:profiles:active: dev
不能使用 spring.profiles.active = dev 了server:port: 8080 spring:application:name: my-webconfig:activate:on-profile: dev# 这个方式行不通,用 ↑ 的 # profiles: # active: devcloud:nacos:# 服务配置方面config:# 配置中心地址server-addr: 192.168.60.72:8848# 命名空间namespace: myDev# 文件格式file-extension: yaml
- namespace 填写的是命名空间的ID不是名称
在 nacos 上新建配置文件的 Data Id 不能随意乱写
,根据官方文档是由这几部分组成.${prefix}-${spring.profiles.active}.${file-extension}
- prefix :注册在 nacos 上的服务名 spring.application.name 的值
- spring.profiles.active 或(
spring.config.activate.on-profile
) :配置的开发环境是开发还是测试,比如 dev,test,prod 这个最好写上 - prefix 和 spring.profiles.active 之间有一个 - 连接符,如果不写 spring.profiles.active 的话那么直接 prefix 和 file-extension 拼接,没有连接符
- file-extension :这个和你选择的扩展名以及本地扩展名这三个值一致
- 连接配置中心的参数需要写在 bootstrap 里面,写在 application 里面无法连接配置中心
- bootstrap 比 application 先执行,且内容无法覆盖(具体差异网上说的挺详细)
注册中心
将服务注册到Nacos就比较简单了。
依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
bootstrap-dev.yml
server:port: 8080
spring:application:name: lql-webconfig:activate:on-profile: dev# 这个方式行不通,,用 ↑ 的
# profiles:
# active: devcloud:nacos:# # 服务配置方面config:# 配置中心地址server-addr: 127.0.0.1:8848# 命名空间namespace: myDev# 文件格式file-extension: yaml# 服务注册方面discovery:# 服务注册地址server-addr: 127.0.0.1:8848namespace: myDev
启动就可以了。。
这篇关于吐血整理nacos 作为springcloud的配置中心和注册中心的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!