天天看點

微服務 分布式配置中心 nacos

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
          '''
      }
}
           

繼續閱讀