nacos 集群部署
之前 nacos 都是单机部署,使用倒还稳定,没有因为 nacos 出过问题。最近因为各种原因连续迁了几次服务器,中间涉及 nacos 服务器,比较麻烦,所以决定把 nacos 改为集群部署。
nacos官方也推荐生产环境采用集群部署,确保高可用。
官方文档链接:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
1 架构简述
官方推荐使用“域名 + SLB模式”模式,可读性好,而且换ip方便。我这里通过nginx负载均衡进行映射
2 部署操作
2.1 准备文件
准备3个nacos
- nacos-8648
- nacos-8748
- nacos-8848
2.2 修改nacos配置
分别在conf目录下创建cluster.conf文件,每行配置成ip:port
。推荐配置3个或3个以上节点:
192.168.18.1:8648
192.168.18.1:8748
192.168.18.1:8848
分别修改application.properties
:
# 分别指定端口
server.port=8848
# 数据库
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos2.1.1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
2.3 分别启动nacos
运行bin目录下的startup.sh(linux)或startup.cmd(windows)
2.3 修改nginx配置
修改conf/nginx.conf
upstream nacos {
server 192.168.18.1:8648;
server 192.168.18.1:8748;
server 192.168.18.1:8848;
}
server {
listen 80;
# 推荐通过内网dns解析,测试时可修改hosts实现
server_name nacos.test.com;
location / {
proxy_pass http://nacos;
}
}
3 测试
访问http://nacos.test.com/nacos,查看节点列表:
可以看到启动的nacos都在,我这里启动了3个,但是列出4个,是因为机器有多个ip。如果要限制ip,可以在application.properties
配置文件指定IP地址:
nacos.inetutils.ip-address=192.168.18.1
停止或关闭任意一个nacos,然后刷新页面,nacos仍然可以访问,只是停机的节点为down
状态
4 其他
这些组件可能存在版本兼容性问题:spring cloud、spring boot、spring cloud alibaba、 nacos等。建议选择相对应的版本:
官网文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E