nacos 2.1.0集群生产环境多节点部署
- 版本 2.1.0
- 版本发布日期 2022-04-29
- 官网 集群部署说明
- GitHub GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
下载地址:https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz
JAVA 开发版本版本说明
适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本如下:
Spring Cloud Alibaba Version | Sentinel Version | Nacos Version | RocketMQ Version | Dubbo Version | Seata Version | Spring Cloud Version | Spring Boot Version |
2.2.9.RELEASE | 1.8.5 | 2.1.0 | 4.9.4 | ~ | 1.5.2 | Spring Cloud Hoxton.SR12 | 2.3.12.RELEASE |
1)环境准备
- 安装好 JDK,需要 1.8 及其以上版本
- 建议: 2核 CPU / 4G 内存 及其以上
- 建议: 生产环境 3 个节点 及其以上
集群:
准备三台centos7服务器 101.42.27.209 101.42.27.210 101.42.27.211
伪集群:
101.42.27.209
集群Tips
生产环境,必须在多服务器上部署集群,一台服务器上禁止部署多个nacos节点。同时也不用考虑单机节点冲突问题。个人因服务器硬件资源有限,选择单服务器部署所有服务。
部署集群
cd /usr/local/
wget https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz
tar -zxvf nacos-server-2.1.0.tar.gz
启动文件startup.sh
根据硬件资源及实际情况,在/usr/local/nacos/bin/startup.sh文件中调整JVM参数
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn64m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
JVM参数
Xss:每个线程的stack大小(栈)
Xmx:JAVA HEAP的最大值、默认为物理内存的1/4
Xms:JAVA HEAP的初始值,server端最好Xms与Xmx一样
Xmn:JAVA HEAP young区的大小
XX:MetaspaceSiz:设定内存的永久保存区域
XX:MaxMetaspaceSiz:设定最大内存的永久保存区域
配置调整
应用配置文件application.properties
修改DB连接串将/usr/local/nacos/conf/application.properties的DB配置信息根据实际情况修改,并取消注释
使用外置mysql数据源
spring.datasource.platform=mysql
### Count of DB:db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
注意点
- DB名称: 名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $”组成。如果需要其他字符,需要使用[`]包裹起来,例如
db-nacos。已踩坑未验证
- db.url:增加allowPublicKeyRetrieval=true。 已踩坑已验证
服务端口
raft port: ${server.port} - 1000
grpc port: ${server.port} + 1000
grpc port for server: ${server.port} + 1001
假设对外端口为8848,即总共会有4个端口被占用,分别为7848、8848、9848、9849。所以单服务器部署集群时,端口不要太集中。未踩坑未验证
注意:在单台服务器上搭建伪集群不能使用连续端口号(比如8848,8849,8850), 因为使用8848(grpc会占用9848,9849),8849(grpc会占用9849,9850),会导致端口冲突
原因:Nacos2.x版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
集群配置文件cluster.conf
cat << EOF > /usr/local/nacos/conf/cluster.conf
101.42.27.209:18848
101.42.27.209:28848
101.42.27.209:38848
EOF
mkdir nacos-cluster
复制多节点
服务端口
分别将server.port=8848改为18848 ,28848,38848
修改端口号
vim -nacos /usr/local/nacos-cluster/nacos1/conf/application.properties vim -nacos /usr/local/nacos-cluster/nacos2/conf/application.properties vim -nacos /usr/local/nacos-cluster/nacos3/conf/application.properties
启动集群
节点1:nacos1
sh /usr/local/nacos-cluster/nacos1/bin/startup.sh
tail -f /usr/local/nacos-cluster/nacos1/logs/start.out /usr/local/nacos-cluster/nacos1/logs/nacos.log
节点2:nacos2
sh /usr/local/nacos-cluster/nacos2/bin/startup.sh
tail -f /usr/local/nacos-cluster/nacos2/logs/start.out /usr/local/nacos-cluster/nacos2/logs/nacos.log
节点3:nacos3
sh /usr/local/nacos-cluster/nacos2/bin/startup.sh
tail -f /usr/local/nacos-cluster/nacos2/logs/start.out /usr/local/nacos-cluster/nacos2/logs/nacos.log
日志
启动日志
[root@VM-8-16-centos nacos-cluster]# tail -f /usr/local/nacos-cluster/nacos1/logs/start.out /usr/local/nacos-cluster/nacos1/logs/nacos.log
==> /usr/local/nacos-cluster/nacos1/logs/start.out <==
2023-01-12 15:35:02,213 INFO Nacos is starting...
2023-01-12 15:35:04,215 INFO Nacos is starting...
2023-01-12 15:35:05,229 INFO Nacos is starting...
2023-01-12 15:35:06,238 INFO Nacos is starting...
2023-01-12 15:35:06,358 INFO Nacos started successfully in cluster mode. use external storage ==> nacos1/logs/nacos.log <==
2023-01-12 15:35:06,238 INFO Nacos is starting...
2023-01-12 15:35:06,306 INFO Starting ProtocolHandler ["http-nio-18848"]
2023-01-12 15:35:06,353 INFO Tomcat started on port(s): 18848 (http) with context path '/nacos'
2023-01-12 15:35:06,358 INFO Started Nacos in 18.12 seconds (JVM running for 18.93)
2023-01-12 15:35:06,358 INFO Nacos started successfully in cluster mode. use external storage
可以看到
Tomcat started on port(s): 18848 (http) with context path '/nacos'、
Nacos started successfully in cluster mode. use external storage等信息,表示启动成功。