Nacos使用备忘

写在前面

  • Nacos就是注册中心+配置中心,基本等价于:Nacos = Eureka + Config + Bus。
  • 支持独立和集群两种模式。
  • 支持自带数据库derby和mysql之间的切换
  • 作为配置中心可以通过三种方式进行管理dateId,Group,Namespace

1:Nacos中的匹配规则

dataId的组成格式,以及SpringBoot配置文件中的匹配规则如下:
之所以yml文件中需要配置Spring.application.name,是因为它是构成Nacos配置管理dataId字段的一部分。
Nacos中dataId完整格式如下:

${prefix}-${spring.profile.active}.${file-extension}
  • prefix默认为Spring.application.name的值,也可以通过配置spring.cloud.nacos.config.prefix来配置
  • spring.profile.active就是当前环境下对应的produle。
  • file-extension可以通过spring.cloud.nacos.config.file-exetension来配置。目前只支持properties和yaml类型
    最后公式如下:
${Spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-exetension}

2:作为服务配置中心---分类配置

Nacos的图形化管理界面对配置有很多管理:

  • namespace(命名空间)
  • Group
  • DataId
这三者之间的关系:

类似于java里面的package名和类名。最外层的namespace是可以区分部署环境的,Group和DataID逻辑上区分两个目标对象。
默认情况:NameSpace=public,Group=DEFAULT_GROUP,
nacos的默认命名空间是public,NameSpace主要用来实现隔离,比如说我们现在有三个环境,开发,测试,生产。我们就可以创建三个NameSpace,不同的NameSpace之间是隔离的。
Group可以把不同的微服务划分到同一个分组里。

3:Nacos的集群和持久化配置

默认情况下Nacos使用嵌入式数据库derby。所以启动多个节点会存在数据一致性的问题。所以Nacos采用了集中式存储的方式来支持集群化部署,但是目前只支持Mysql。
持久化配置步骤:

  • 找到nacos/conf/nacos-mysql.sql
    在mysql中创建database:nacos-config之后执行脚本中的sql。
  • 配置nacos/coonfig/application.properties 追加:
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://www.cjlly.com:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
  • 重启nacos

集群配置步骤
配置集群最少需要三台nacos服务实例,可以选择修改启动脚本或者是多机器启动。(内存要求较大,一台nacos服务实例至少需要1G的内存空间)

  • 配置nacos/config/cluster.conf.example
内容修改为以下
#192.168.16.101:8847
#192.168.16.102
#192.168.16.103
172.16.106.64:3333
172.16.106.64:4444
172.16.106.64:5555
  • 修改nacos的启动脚本startup.sh.
    类似其他软件的shell命令,传递不同的端口号启动不同的nacos实例。
    命令:./startup.sh -p 3333 表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置一致。
59  while getopts ":m:f:s:c:p:o:" opt
60  do
61     case $opt in
 62         m)
 63             MODE=$OPTARG;;
 64         f)
 65             FUNCTION_MODE=$OPTARG;;
 66         s)
 67             SERVER=$OPTARG;;
 68         c)
 69             MEMBER_LIST=$OPTARG;;
 70         p)
 71             EMBEDDED_STORAGE=$OPTARG;;
 72         o)
 73             PORT=$OPTARG;;
 74         ?)
 75         echo "Unknown parameter"
 76         exit 1;;
 77     esac
 78 done

144 nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &            #倒数第二行

这时就可以使用bash startup.sh -o 3333和bash startup.sh -o 4444 的方式启动

  • nginx的配置
    /usr/bin/nginx/nginx.conf
upstream cluster{                
server 10.211.55.7:3333;                 
server 10.211.55.7:4444;                 
server 10.211.55.7:5555;
         }         
server {         
listen          1111; 
        server_name     10.211.55.5;        
 location / {
                 proxy_pass http://cluster;
         }        
 }

你可能感兴趣的:(Nacos使用备忘)