nacos作为配置中心可以将配置项目的配置提取到外部,独立管理,当nacos单机部署时,当nacos服务不正常时,项目便不可获取到正确的配置信息。如果将nacos搭建成集群环境,只要不是集群的所有机器都有挂掉,都可以正常读取配置,可以提高项目稳定性。
1. 预备环境
需要多台linux机器作为集群的环境
此外,需要linux机器包含maven环境、java环境
2. 下载解压文件
github地址:https://github.com/alibaba/nacos
3. 配置集群地址
新建cluster.conf文件,或者将cluster.conf.example重明明为cluster.conf
在此文件中添加集群地址和端口号
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集群的每一台机器