做自媒体在哪个网站好,济南网站建设飞鸟,公司logo设计logo,wordpress注册字段一、nacos安装部署
springboot3.x集成Nacos首先需要将Nacos从1.x升级到2.x#xff0c;建议直接安装2.x版本#xff0c;手动将1.x的配置信息迁移到2.x中#xff0c;先并行一段时间#xff0c;待全部迁移完成稳定运行之后再停掉1.x#xff0c;升级和安装、操作请查看官方文…一、nacos安装部署
springboot3.x集成Nacos首先需要将Nacos从1.x升级到2.x建议直接安装2.x版本手动将1.x的配置信息迁移到2.x中先并行一段时间待全部迁移完成稳定运行之后再停掉1.x升级和安装、操作请查看官方文档Nacos 2.0 升级文档 | Nacos权限配置请参照Authorization | Nacos
nacos2.0版本相比1.X新增了gRPC的通信方式因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上进行一定偏移量自动生成。
端口与主端口的偏移量描述98481000客户端gRPC请求服务端端口用于客户端向服务端发起连接和请求98491001服务端gRPC请求服务端端口用于服务间同步等7848-1000Jraft请求服务端端口用于处理服务端间的Raft相关请求
如果存在防火墙或者nginx端口转发问题需要进行相应的端口暴露配置。如在nginx中在已经暴露8848(x)的基础上需要额外暴露9848x1000)。9849和7848端口为服务端之间的通信端口请勿暴露到外部网络环境和客户端测。
二、springboot3.x集成nacos
1、添加依赖 !--nacos配置中心--dependencygroupIdcom.alibaba.boot/groupIdartifactIdnacos-config-spring-boot-starter/artifactIdversion0.3.0-RC/version/dependency
注意 版本 0.3.x.RELEASE 对应的是 Spring Boot 3.x 版本版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
2、配置文件中添加nacos配置
1单个环境配置
nacos:config:#是否开启Nacos配置预加载bootstrap:enable: truedata-id: demo-boot-v3type: yamlgroup: DEFAULT_GROUPauto-refresh: trueserver-addr: 127.0.0.1:8848namespace: 0f72f102-23c1-4176-869f-91f31c42a07ebootstrap:log:enable: trueusername: nacospassword: nacos
(2)多环境配置以开发环境dev和生产环境pro为例
spring:profiles:#指定要加载的配置active: devnacos:config:#是否开启Nacos配置预加载bootstrap:enable: truedata-id: demo-boot-v3type: yamlgroup: DEFAULT_GROUPauto-refresh: true---
#开发环境dev
spring:config:activate:on-profile: dev
nacos:config:#nacos的地址替换成测试环境的实际地址即可server-addr: 127.0.0.1:8848#命名空间替换为测试环境的实际命名空间即可namespace: 0f72f102-23c1-4176-869f-91f31c42a07e bootstrap:log:enable: true#如果开启认证的话需要用户名和密码username: nacospassword: nacos---
#生产环境pro
spring:config:activate:on-profile: pro
nacos:config:#nacos的地址替换成线上的实际地址即可server-addr: 127.0.0.1:8848#命名空间替换为线上的实际命名空间即可namespace: 0f72f102-23c1-4176-869f-91f31c42a07ebootstrap:log:enable: true#如果开启认证的话需要用户名和密码username: nacospassword: nacos
3、启动项目踩坑
完成前面的工作之后正常情况下nacos的集成就算成功了但是并没有想象的那么顺利我们启动项目意外发生了控制台报错项目启动失败翻到最前面。报错内容如下: java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method void init() not found
自动集成的org.yaml.snakeyaml依赖包中相关类里面的方法不存在真是太难了于是尝试替换该依赖包经过多个版本尝试在pom.xml里面添加如下版本的依赖包进行覆盖后终于能正常启动了 dependencygroupIdorg.yaml/groupIdartifactIdsnakeyaml/artifactIdversion1.32/version/dependency 大功告成