nacos高可用集群搭建、配置无效问题排查

nacos配置中心集群搭建:

一、环境

jdk版本:1.8.0_181

nacos: 1.3.1 * nacos需使用最新版本才能兼容8.*版本的mysql

mysql: 8.0.19

三台机器(三个以上节点才能搭建集群)

10.221.164.151:9000 10.221.164.152:9000 10.221.164.153:9000

二、部署集群

  • 设置mysql数据源

    分别在三台服务器上安装nacos,修改各机器上nacos/conf下的application.properties

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://10.221.164.118:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

  • 创建集群配置文件

    复制三台机器的nacos/conf/下cluster.conf.example文件为cluster.conf

    cd /usr/local/nacos/conf

    cp cluster.conf.example cluster.conf

    修改 cluster.conf 文件保存部署的 nacos 实例地址

#2021-06-09T16:02:56.600
10.221.164.151:9000
10.221.164.152:9000
10.221.164.153:9000

三、启动nacos

进入nacos安装目录下的bin文件夹

运行命令 sh startup.sh

启动日志:

/home/scpfile/jdk1.8.0_281/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/home/scpfile/jdk1.8.0_281/jre/lib/ext:/home/scpfile/jdk1.8.0_281/lib/ext -Xloggc:/opt/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/opt/nacos/nacos/plugins/health,/opt/nacos/nacos/plugins/cmdb -Dnacos.home=/opt/nacos/nacos -jar /opt/nacos/nacos/target/nacos-server.jar  --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/opt/nacos/nacos/conf/ --logging.config=/opt/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288

         ,--.
       ,--.'|
   ,--,:  : |                                           Nacos 1.3.1
,`--.'`|  ' :                       ,---.               Running in cluster mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 9000
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 15099
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://10.221.164.151:9000/nacos/index.html
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'

2021-06-09 15:14:12,911 INFO The server IP list of Nacos is [10.221.164.151:9000, 10.221.164.152:9000, 10.221.164.153:9000]
2021-06-09 15:14:31,449 INFO Nacos Log files: /opt/nacos/nacos/logs

2021-06-09 15:14:31,452 INFO Nacos Log files: /opt/nacos/nacos/conf

2021-06-09 15:14:31,452 INFO Nacos Log files: /opt/nacos/nacos/data

2021-06-09 15:14:31,453 INFO Nacos started successfully in cluster mode. use external storage

Running in cluster mode 集群模式运行

四、验证集群模式节点

进入nacos管理页面,在集群管理的节点列表中可看到三个节点ip

五、相关问题排查:

1.当修改某个节点配置文件内容,有时候加载不到的问题
  • 查看nacos配置文件中yaml文件格式是否正确,以及关联文件
spring:
  profiles:
    active: dev
  application:
    # 服务名及私有配置名称
    name: vas.other
  cloud:
    config:
      # 关闭默认配置中心?待验证
      enabled: false
    nacos:
      # 服务注册
      discovery:
        # 命名空间:服务注册、发现环境隔离
        namespace: ${spring.profiles.active}-environment
        server-addr: 10.221.164.151:9000,10.221.164.152:9000,10.221.164.153:9000
        # 配置中心
      config:
        # 命名空间:配置隔离
        namespace: ${spring.profiles.active}-environment
        server-addr: 10.221.164.151:9000,10.221.164.152:9000,10.221.164.153:9000
        file-extension: yaml
        ext-config[0]:  #引用多个配置文件
          data-id: redis-${spring.profiles.active}.yaml
          refresh: true
        ext-config[1]:
          data-id: datasource-${spring.profiles.active}.yaml
          refresh: true
  • 可先查看节点是否都正常,再查看修改后数据库中是否进行信息同步

你可能感兴趣的:(java,linux,后端)