Linux 配置 nacos 集群
1个 Ngeinx + 3 个 nacos 注册中心 + 1 个 mysql
Nacos 下载 linux 版
[root@bing opt]# mkdir nacos
mac 直接把本地配置好持久化的 nacos 包上传到 Linux /opt/nacos 目录下
Linux nacos 持久化跟本地一样配置过程
1、配置 nacos 集群
# 修改 Linux nacos 脚本
[root@bing]# cd /opt/nacos/conf
复制备份
[root@bing conf]# cp cluster.conf.example cluster.conf
[root@bing conf]# hostname -i
hostname -i 必须是可识别的 ip: 172.16.100.4
[root@bing conf]# vi cluster.conf
删除原有的配置,输入以下配置
172.16.100.4:3333
172.16.100.4:4444
172.16.100.4:5555
# 备份启动脚本和修改配置
[root@bing bin]# cd /opt/nacos/bin
[root@bing bin]# cp startup.sh startup.sh.bk
[root@bing bin]# vi startup.sh
修改前:
57 while getopts ":m:f:s:" opt
58 do
59 case $opt in
60 m)
61 MODE=$OPTARG;;
62 f)
63 FUNCTION_MODE=$OPTARG;;
64 s)
65 SERVER=$OPTARG;;
66 ?)
67 echo "Unknown parameter"
68 exit 1;;
69 esac
70 done
修改后:
57 while getopts ":m:f:s:p:" opt 🔴 添加 :p
58 do
59 case $opt in
60 m)
61 MODE=$OPTARG;;
62 f)
63 FUNCTION_MODE=$OPTARG;;
64 s)
65 SERVER=$OPTARG;;
66 p) 🔴 添加这两行
67 PORT=$OPTARG;; 🔴
68 ?)
69 echo "Unknown parameter"
70 exit 1;;
71 esac
72 done
修改前:
134 nohup $JAVA ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
🔴 配置后:添加 -Dserver.port=${PORT}
134 nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
- 启动 nacos 集群:
# 启动 nacos :
[root@localhost ]# cd /bing/nacos/bin
[root@localhost bin]# ./startup.sh -p 3333
[root@localhost bin]# ./startup.sh -p 4444
[root@localhost bin]# ./startup.sh -p 5555
# 查看集群数量
[root@localhost bin]# ps -ef|grep nacos|grep -v grep |wc -l
3
# 开启防火墙
firewall-cmd --zone=public --add-port=3333/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=5555/tcp --permanent
firewall-cmd --reload
- 测试
成功访问每个 nacos :
http://172.16.100.4:3333/nacos/#/login
http://172.16.100.4:4444/nacos/#/login
http://172.16.100.4:5555/nacos/#/login
2、配置 Nginx 作为负载均衡器
[root@bing conf.d]# cd /opt/nginx/conf/conf.d
[root@bing conf.d]# ls
default.conf
备份
[root@bing conf.d]# cp default.conf default.conf.bk
[root@bing conf.d]# vi default.conf
upstream nacos{ 🔴 添加这一块配置,ip 跟 nacos 配置的一样
server 172.16.100.4:3333;
server 172.16.100.4:4444;
server 172.16.100.4:5555;
}
server {
listen 80; 🔴 docker启动nignx时指定了80端口,修改端口访问不到 nacos
listen [::]:80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
# 🔴 添加代理,注意名字跟上面定义的一样
proxy_pass http://nacos;
}
重启 nginx : docker restart nginx
通过 nginx 访问 nacos
http://172.16.100.4:/nacos/#/login
3、nacos 新建配置文件测试数据持久化
# 新建配置文件
atguigu-config.yaml
YAML
config:
info: atguigu-config.yaml-2021-02-03
# 保存后,查看 Linux 数据库 config_info 表:
1 atguigu-config.yaml DEFAULT_GROUP config:
info: atguigu-config.yaml-2021-02-03 737daa088fbe72c73b26875d1f5c405c 2021-02-03 09:37:08 2021-02-03 09:37:08 NULL 172.17.0.4 NULL NULL NULL yaml NULL
# 持久化成功!
4、微服务 9002 注册到 Linux nacos 集群
1) 修改 nacos 地址,为 nginx 端口
application.properties
server.port=9002
# 微服务名
spring.application.name=nacos-payment-provider
# 注册到 nacos 127.0.0.1:8848 注册中心
#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# ⚪️ 地址换成 Linux 集群版的 nacos,nginx 实现负载均衡
spring.cloud.nacos.discovery.server-addr=172.16.100.4:80
# 把要监控的内容-全部暴露出来
management.endpoints.web.exposure.include=*
2)启动 微服务 9002
3) 访问 nginx 代理的 nacos 配置列表
http://172.16.100.4/nacos/#/serviceManagement?serverId=center&dataId=&group=&namespace=&edasAppName=&searchDataId=&searchGroup=
服务列表|public
服务名 | 分组名称 | 集群数目 | 实例数 | 健康实例数 | 触发保护阈值 | 操作 |
---|---|---|---|---|---|---|
nacos-payment-provider | DEFAULT_GROUP | 1 | 1 | 1 | false | 详情|示例代码|删除 |
微服务注册成功!