一、集群部署说明
官网集群部署:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
集群架构如下:
二、环境准备
搭建集群首先要具备
JDK环境
,其次需要,1个Nginx+3个nacos注册中心+1个mysql
,集群按正常来说应该要具备三台服务器,我这里设备有限,就在一台机器上来搭建集群了!Nginx主要用他作为负载均衡。如果您也是一台Linux机器,Linux内存最少要4个G
左右,不然可能会内存爆满,然后会导致Nacos启动不成功等问题!
- jdk环境:https://blog.csdn.net/weixin_43888891/article/details/126810947?spm=1001.2014.3001.5501
- 基于docker安装mysql:https://blog.csdn.net/weixin_43888891/article/details/113577006
- 创建Nacos数据库,并执行脚本(Nacos数据持久化到mysql),脚本文件:https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql
- 安装Nginx:https://blog.csdn.net/weixin_43888891/article/details/122831636
- Nacos下载地址:https://github.com/alibaba/nacos/releases
6. 查看nginx是否启动成功:ps -ef | grep nginx
三、搭建Nacos集群
我这里用的是一台机器,假如你是三台机器,那么每一台都需要这么操作,切记每个nacos的
cluster.conf
要保持一致,并且application.properties
当中指定的mysql数据库也都要是一致的。
第一步:上传解压:
- 创建存放nacos的文件夹:
mkdir /opt/nacos
- 通过
xftp
上传tar包到/opt/nacos
- 解压:
tar -zxvf nacos-server-2.1.1.tar.gz
第二步:修改application.properties,指定mysql持久化
- 修改配置文件:
vi /opt/nacos/nacos/conf/application.properties
,Esc进入编辑状态
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
-
:wq
保存application.properties配置
第三步:指定集群的IP和端口
- 进入/opt/nacos/nacos/conf复制出cluster.conf:
cp cluster.conf.example cluster.conf
- cluster.conf内容如下,在文件最下方修改即可(这里我用本机真实ip地址或者127.0.0.1,在后面均可正常启动,但还是推荐使用本机真实ip地址,如果使用127.0.0.1,在nacos页面的集群管理当中会出现两个节点,一个是127.0.0.1,一个是真实ip的!):
vi cluster.conf
改完后:wq
保存cluster.conf配置
第四步:由于用的一台机器,而startup.sh并没有传入端口号的参数,所以手动加一个
编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口(如果本身就是三台机器,可以跳过这一步)
- /opt/nacos/nacos/bin:目录下有startup.sh,平时单机版的启动,都是./startup.sh即可。
- 集群启动,我们希望可以类似其它软件的shell命令,传递不同的端口号启动不同的nacos实例。命令:
./startup.sh -t 3333
表示启动端口号为3333的nacos服务器实例,和上一步的cluster.conf配置的一致。
一共需要修改两个地方,如下:vi startup.sh
修改后:-Dserver.port=${PORT}
一定不要放错地方了,放到"$JAVA"
后面
第五步:copy两个nacos
由于我们没有多台机器,只有一台,那我们一台机器启动多个nacos,在低版本当中支持一个nacos安装包多个启动,但是2.0以后版本是不支持的,不然会报错:
Fail to init node, please see the logs to find the reason.
,所以一切配置好之后直接copy两个文件:cp -r /opt/nacos/nacos /opt/nacos/nacos2
第六步:启动执行
sh /opt/nacos/nacos/bin/startup.sh -t 3333
sh /opt/nacos/nacos1/bin/startup.sh -t 4444
sh /opt/nacos/nacos2/bin/startup.sh -t 5555
- 查看启动日志:
tail -f /opt/nacos/nacos/logs/start.out
- 出现报错(没有出现报错的话忽略这一步):
-
(1)查看哪个安装包包含该库:
yum provides libstdc++.so.6
-
(2)安装:
yum install libstdc+±4.8.5-44.el7.i686
-
(3)停止nacos:
ps -ef | grep nacos
然后再kill -9 进程id
这时候再启动就不报错了!
-
四、调整Nginx的配置
在实际开发当中是可以使用Nginx集群的,当然我这里用的是单机Nginx
- 修改配置文件:
vi /usr/local/nginx/conf/nginx.conf
- 在nginx.conf的http块加如下配置:
upstream cluster {
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
server {
listen 1111;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://cluster;
}
}
cd /usr/local/nginx/sbin
- 让配置生效:
./nginx -s reload
防火墙相关设置:
- 查看是否开启防火墙:
systemctl status firewalld
- 如果开启了,需要开放1111端口:
firewall-cmd --zone=public --add-port=1111/tcp --permanent
- 重启防火墙:
systemctl restart firewalld.service
- 查看已经开放的端口号:
firewall-cmd --list-all
如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估:
systemctl stop firewalld.service
五、测试访问
http://192.168.1.104:1111/nacos
新建一个配置测试:
查看数据库:
文章来源:https://www.toymoban.com/news/detail-494634.html
微服务注册:文章来源地址https://www.toymoban.com/news/detail-494634.html
server:
port: 9002
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
#配置Nacos地址
#server-addr: localhost:8848
# 换成nginx的1111端口,做集群
server-addr: 192.168.111.144:1111
management:
endpoints:
web:
exposure:
include: '*'
到了这里,关于linux环境搭建nacos集群详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!