nacos配置中心单击模式改造为集群模式

nacos作为配置中心可以将配置项目的配置提取到外部,独立管理,当nacos单机部署时,当nacos服务不正常时,项目便不可获取到正确的配置信息。如果将nacos搭建成集群环境,只要不是集群的所有机器都有挂掉,都可以正常读取配置,可以提高项目稳定性。

1. 预备环境

需要多台linux机器作为集群的环境
此外,需要linux机器包含maven环境、java环境

2. 下载解压文件

github地址:https://github.com/alibaba/nacos

3. 配置集群地址

新建cluster.conf文件,或者将cluster.conf.example重明明为cluster.conf

在此文件中添加集群地址和端口号


image.png

4. 配置properties文件

新建application.properties文件或者将application.properties.example重命名为application.properties

# spring
fsdserver.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false

##datasource
spring.datasource.platform=mysql
 
db.num=1
db.url.0=jdbc:mysql://192.168.220.46:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=ahhx@123

# metrics for prometheus
#management.endpoints.web.exposure.include=*

# metrics for elastic search
management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
# default current work dir
server.tomcat.basedir=

## spring security config
### turn off security
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**

nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**

nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true

5. 启动nacos

执行bin目录下的startup.sh脚本


ps:sh startup.sh则默认以集群模式启动,sh startup.sh -m standalone则是以单机模式启动

启动成功后,单独访问每台机器的地址(ip:8848/nacos/#/login),用户名密码:nacos/nacos
如果都能正常访问,则一切正常。


6. 修改SpringBoot配置文件

Spring:
  cloud:
    nacos:
      config:
        server-addr: ip:8848,ip:8848,ip:8848
        file-extension: yaml

启动项目,后台可以看到nacos连接的相关日志


并且项目可以正常读取到配置内容,则一切正常

7. jenkins部署

如果使用jenkins部署项目,则需要需要修改jenkins的nacos相关配置,使之可以正确读取到nacos集群的每一台机器


推荐阅读更多精彩内容