nacos配置服务隔离集群和开机启动

  • Post author:
  • Post category:其他


一.nacos的配置隔离

对于Nacos配置管理,通过Namespace、Group、Data ID能够定位到一个配置集

Namespace:代表不同环境的配置隔离

Group:分组,代表某些项目

Data ID:每个项目下的工程模块

1.namespace隔离

1.1新建两个namespace命名为dev和test

1.2克隆配置文件

点击克隆按钮,选择要克隆的配置文件到指定的命名空间中

1.3读取配置文件

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.137.114:8848 #注册中心的地址#配置文件的前缀
        prefix: nacos-config #配置文件的前缀,默认是spring.application.name
        file-extension: yaml #配置文件的后缀,默认是properties
        namespace: dev
#Data ID的语法:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}

2.group隔离

2.1新建一个config配置不同分组

2.2不同的分组下可以有相同的dataid配置

2.3读取配置文件

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.137.114:8848 #注册中心的地址#配置文件的前缀
        prefix: nacos-config #配置文件的前缀,默认是spring.application.name
        file-extension: yaml #配置文件的后缀,默认是properties
        namespace: test
        group: NACOS_GROUP
#Data ID的语法:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}

二.服务隔离

两个服务选择不同的namespace和group就不可进行数据的交互,如若交互,必须配置相同的namespace和group

server:
  port: 80
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.137.114:8848 # nacos的注册中心地址
        namespace: test
        group: nacos_group
  application:
    name: nacos-consumer # 注册到nacos的服务名字

三.nacos的持久化

1.数据的持久化

1.1切换数据库

修改conf/application.properties文件,增加支持mysql数据源配置(目前为止只支持mysql)

集群模式下会导致每台服务器的配置都不一样

### If use MySQL as datasource:
spring.datasource.platform=mysql

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

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

1.2建立数据库数据表

建立nacos数据库

找到conf/nacos-mysql.sql并且执行

1.3测试

启动mysql

启动nacos

新建配置文件,观察nacos是否把配置信息存储到mysql中

四.nacos的集群

1.节点规划

192.168.137.114 8848
192.168.137.114 8849
192.168.137.114 8850

2.集群搭建

2.1找到conf/cluser.conf.example,将其改名为conf/cluster.conf,并将内容修改为

# ip:port
192.168.209.129:8848
192.168.209.129:8849
192.168.209.129:8850

2.2复制三份nacos

[root@localhost bin]# cd /usr/local
[root@localhost java]# mkdir nacos_cluster
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8848
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8849
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8850

2.3将conf/application.properties中的端口号分别改为

server.port=8848
server.port=8849
server.port=8850

3.配置nginx代理服务器

3.1安装nginx的依赖库

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

3.2下载nginx

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

3.3解压安装包

tar -zxvf nginx-1.12.0.tar.gz

3.4配置nginx安装包

cd nginx-1.12.0

./configure --prefix=/usr/local/nginx

3.5编译并且安装

make && make install

3.6配置nginx代理nacos

upstream nacos {
  server 192.168.209.129:8848;
  server 192.168.209.129:8849;
  server 192.168.209.129:8850;
}

server {
  listen 80;
  server_name  localhost;
  location / {
    proxy_pass http://nacos;
  }
}

五.测试

1.启动nacos集群

⚠️要将虚拟机内存设置足够,否则会导致服务启动失败

[root@localhost upload]# cd /usr/local/nacos_cluster/nacos_8848/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8849/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8850/bin
[root@localhost bin]# ./startup.sh

2.启动nginx

[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx 

3.将微服务注册到nacos集群

启动nacos-config服务,并通过nginx访问nacos集群:

http://192.168.137.114/nacos

六.开机自启动

1.添加nacos.service文件

vim /lib/systemd/system/nacos.service

nacos开机自启动文件配置如下

[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target


2.修改nacos的startup.sh

修改JAVA_HOME路径并注销之后的3行配置

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191 
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME

3.设置开机自启动

systemctl daemon-reload        #重新加载服务配置
systemctl enable nacos.service #设置为开机启动
systemctl start nacos.service  #启动nacos服务
systemctl stop nacos.service   #停止nacos服务



版权声明:本文为host799原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。