spring cloud 配置中心 nacos實戰
Nacos官網
主流微服務配置中心對比
Nacos 配置中心原理分析
Nacos 配置實時更新原理分析
Nacos Sync 的設計原理和規劃
Nacos 權限控制介紹及實戰
Spring Cloud Alibaba基礎教程:使用Nacos作為配置中心
Spring Cloud + Nacos 三部曲之Config 配置
Spring Cloud Alibaba Nacos配置的多檔案加載與共享配置
Spring-Boot application.yml 檔案拆分,實作 maven 多環境動态啟用 Profiles
用了這麼久配置中心,還不知道長輪詢是什麼?
一文詳解 Nacos 高可用特性
nacos server 部署
docker nacos 單機部署
Nacos 叢集部署
nacos docker 快速部署
docker 部署
docker pull nacos/nacos-server
vi /usr/home/nacos/init.d/custom.properties
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://10.22.7.80:7915/bop_config?characterEncoding=utf8
db.user=fms_root
db.password=root1234
# nacos.cmdb.dumpTaskInterval=3600
# nacos.cmdb.eventTaskInterval=10
# nacos.cmdb.labelTaskInterval=300
# nacos.cmdb.loadDataAtStart=false
# 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.taskDispatchPeriod=200
# nacos.naming.distro.batchSyncKeyCount=1000
# nacos.naming.distro.syncRetryDelay=5000
# nacos.naming.data.warmup=true
# nacos.naming.expireInstance=true
nacos.istio.mcp.server.enabled=false
單機
記憶體模式:
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
mysql模式:
docker run
–name nacos -d
-p 8848:8848
–restart=always
–net=host
-e MODE=standalone
-v /data0/nacos/logs:/home/nacos/logs
-v /usr/home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
nacos/nacos-server
叢集
mysql模式
docker rm -f ${name}
docker run -d -p 8848:8848 \
--name nacos \
--privileged \
--restart=always \
--net=host \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=192.168.11.126 \
-e NACOS_SERVERS="192.168.11.126:8848 192.168.11.196:8848 192.168.11.200:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_MASTER_SERVICE_HOST=192.168.11.126 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=xxx \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-v /data0/${name}/logs:/home/nacos/logs \
registry.api.xx.com/fms/nacos:1.1.4
如果配置有誤,删除nacos 容器,重新配置 :
docker stop nacos && docker rm nacos
jenkins pipeline script 配置
env.node1='10.4.14.21'
env.node2='10.4.4.22'
env.node3='1.1.11.126'
env.name='nacos'
node(env.node1){
stage('Copy & restart'){
sh '''
set +e
sleep 5
docker rm -f ${name}
docker run -d \
--name nacos \
--privileged \
--restart=always \
--net=host \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=17.16.11.16 \
-e NACOS_SERVERS="10.4.14.2:8848 10.4.4.22:8848 1.1.11.126:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_MASTER_SERVICE_HOST=1.1.11.126 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=xxxxxx \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-v /data0/${name}/logs:/home/nacos/logs \
registry.api.xx.com/fms/nacos:1.1.4
'''
}
}
node(env.node2){
stage('Copy & restart'){
sh '''
set +e
sleep 5
docker rm -f ${name}
docker run -d \
--name nacos \
--privileged \
--restart=always \
--net=host \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=17.16.11.16 \
-e NACOS_SERVERS="10.4.14.2:8848 10.4.4.22:8848 1.1.11.126:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_MASTER_SERVICE_HOST=1.1.11.126 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=xxxxxx \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-v /data0/${name}/logs:/home/nacos/logs \
registry.api.xx.com/fms/nacos:1.1.4
'''
}
}
node(env.node3){
stage('Copy & restart'){
sh '''
set +e
sleep 5
docker rm -f ${name}
docker run -d \
--name nacos \
--privileged \
--restart=always \
--net=host \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_IP=17.16.11.16 \
-e NACOS_SERVERS="10.4.14.2:8848 10.4.4.22:8848 1.1.11.126:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_DATABASE_NUM=1 \
-e MYSQL_MASTER_SERVICE_HOST=1.1.11.126 \
-e MYSQL_MASTER_SERVICE_PORT=3306 \
-e MYSQL_MASTER_SERVICE_USER=root \
-e MYSQL_MASTER_SERVICE_PASSWORD=xxxxxx \
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \
-v /data0/${name}/logs:/home/nacos/logs \
registry.api.xx.com/fms/nacos:1.1.4
'''
}
}