目录
- 1、搭建单机环境
- 2、配置集群
- 3、启动、停止集群节点
- 4、配置自启服务
- 5、配置nginx映射
- 6、SpringCloud连接集群
《Linux部署Nacos-2.3.x单机环境》
《Docker部署Nacos-2.3.x单机环境》
《Docker部署Nacos-2.3.x集群环境》
1、搭建单机环境
首先按照单机环境
的流程成功,需要进行配置mysql环境
、配置application.properties
、配置startup.sh
,参考《Linux部署Nacos-2.3.x单机环境》完成搭建的搭建并且成功运行。
2、配置集群
配置nacos集群,至少需要三个节点。
如果是在不同服务器上搭建:
- 可以先在某一台上,完成单机环境的配置然后拷贝到其他服务器,再完成后续的集群配置
- 直接在每台服务器上进行单机的环境部署,然后再完成后续的集群配置。
如果是在同服务器上搭建:
- 在通过一个服务上部署集群,进行测试时,可以将完成单机环境的配置然后拷贝多份,比如分为:nacos1、nacos2、nacos3,并且修改不同的端口。
部署流程如下:
节点及端口分为:nacos1(8848、9848、9849)、nacos2(8858、9858、9859)、nacos3(8868、9868、9869)
-
1、搭建单机环境:
在/opt/cloud/nacos-cluster
(手动创建)目录下,部署一个nacos
单机环境,并且修改nacos
的名称为nacos1
,保证nacos1
搭建成功。 -
2、复制文件
将搭建好的nacos1
复制为nacos2
、nacos3
-
3、修改集群cluster.conf
分别进入到nacos1、nacos2、nacos3的配置目录中,将cluster.conf.example 修改为 cluster.conf
并且修改里面的配置。# 分别进入到nacos1、nacos2、nacos3的配置目录 cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/conf # 修改nacos1、nacos2、nacos3中的配置文件名称 mv cluster.conf.example cluster.conf # 分别修改nacos1、nacos2、nacos3中cluster.conf的配置 vim cluster.conf # nacos1、nacos2、nacos3配置内容均如下,每个nacos均要配置集群中的所有节点[至少3个] 111.229.160.175:8848 111.229.160.175:8858 111.229.160.175:8868
-
4、修改application.properties
分别进入到nacos1、nacos2、nacos3的配置目录中,修改application.properties
配置中的端口。# 分别进入到nacos1、nacos2、nacos3的配置目录 cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/conf # 分别修改nacos1、nacos2、nacos3中application.properties的配置 vim application.properties # 端口依次修改为8848、8858、8868 server.port=8848[8858/8868] # 集群模式下,使用的LVS的DR模式作的nacos的vip,这样三个节点上面都有这个vip以及这个节点自己的ip # 导致nacos把这个vip也当作一个节点了。 # 修改nacos.inetutils.ip-address=为当前服务器的ip nacos.inetutils.ip-address=111.229.160.175
-
5、修改JVM内存
集群环境下,JVM内存默认为2g
,如果资源不足或者资源有余,可以进行JVM内存修改。# 分别进入到nacos1、nacos2、nacos3的bin目录 cd /opt/cloud/nacos-cluster/nacos1[nacos2/nacos3]/bin # 分别修改nacos1、nacos2、nacos3中application.properties的配置 vim startup.sh # 依次修改JVM,如下配置 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
文档中进行了在本机如何配置集群环境,如果在不同服务器上配置集群环境,那么可以不需要修改端口的步骤,只进行cluster.conf
文件配置即可。
3、启动、停止集群节点
操作命令:
# 以内部数据源方式启动,依次启动
sh startup.sh
# 停止
sh shutdown.sh
成功启动任何一个节点:
启动日志:
登录测试:
通过:http://112.14.15.16:8848、8858、8868/nacos,成功访问nacos则表示搭建成功。
默认账户:nacos
默认密码:nacos,为了安全在第一次进入到nacos以后最好修改一次密码。
控制台节点信息:
成功启动所有节点:
集群搭建成功后,数据会进行同步;访问任意一个节点,都可以看到所有的服务列表、配置列表等数据
4、配置自启服务
自启服务需要手动配置JAVA_HOME
路径路径,修改 /bin/startup.sh
文件
查询jdk配置:
#1、查询jdk配置
echo $JAVA_HOME
# 2、结果
/usr/local/java/jdk1.8.0_131
修改为指定jdk:
# 修改配置
vim start.sh
# 内容
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/java/jdk1.8.0_131
创建自启服务:
vim /usr/lib/systemd/system/nacos.service
加入内容:
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
# 单节点方式启动,填写实际路径
# ExecStart=/opt/cloud/nacos/bin/startup.sh -m standalone
# 集群方式启动-外部数据源启动,填写实际路径
ExecStart=/opt/cloud/nacos/bin/startup.sh
ExecStop=/opt/module/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
加入自启:
systemctl daemon-reload
systemctl enable nacos.service
操作命令:
# 启动
systemctl start nacos
# 停止
systemctl stop nacos
5、配置nginx映射
由于是集群配置,存在多个服务端控制台,我们可以通过任意一个控制台看到所有节点信息,为了减少节点的访问量,想要访问不同的节点需要输入不同的ip:port
。
通过nginx做负载均衡
,向外暴漏一个统一的地址,目的有两个:
- 为了单个节点的减轻压力和方便操作
- 在SpringCloud整合,server-addr配置一个统一的入口路径
ngxin配置内容如下:
....
....
upstream nacos-proxy {
server 111.229.160.175:8848 weight=1;
server 111.229.160.175:8858 weight=1;
server 111.229.160.175:8868 weight=1;
}
server {
....
location /nacos {
proxy_pass http://nacos-proxy;
port_in_redirect on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
....
}
效果:
6、SpringCloud连接集群
spring:
cloud:
nacos:
discovery:
#连接nacos集群前,配置好nginx负载均衡,直接连接nginx的ip+port即可,80端口可以忽略
server-addr: 162.14.115.18
......