nacos-2.1.1安装配置+集群(Linux)
本篇博客用于记录我学习配置nacos集群,因为网上大多教程采用的是伪集群(通过访问不同端口号来模拟实现不同主机集群)的教学方式,虽无二致,但还是希望能通过不同服务器进行更加真实的nacos集群实操。
一、环境准备
1、准备三台及以上CentOS7操作系统的服务器(虚拟机),配置单机一台即可
2、由于nacos需要依赖Java环境运行,因此需要安装配置
JDK1.8
3、下载
nacos-server-2.1.1.tar.gz
4、安装配置mysql,本文通过docker安装mysql,也可以采用其他方式安装
二、Nacos安装、运行(单机)
1、在
/opt
目录下新建目录
/nacos-2.1.1
[root@zyf_01 opt]# mkdir nacos-2.1.1
2、通过XFTP将下载好的
nacos-server-2.1.1.tar.gz
上传到
/nacos-2.1.1
目录下,并解压
# 解压到/nacos-2.1.1目录下
[root@zyf_01 nacos]# tar -zxvf nacos-server-2.1.1.tar.gz
# 删除安装包(个人习惯)
[toot@zyf_01 nacos-2.1.1]# rm nacos-server-2.1.1.tar.gz
3、开放端口
nacos
默认的端口为8848
,由于Nacos2.x版本相比1.x新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成(
分别偏移了1000和1001
)
注意:防火墙需要开放8848、9848、9849三个端口
端口 | 与主端口偏移量 | 描述 |
---|---|---|
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
例:
如果nacos主端口为8858,那么新增的gRPC端口为9858和9859
4、检查防火墙是否已经放开8848、9848、9849三个端口
查看防火墙状态 # systemctl status firewalld
开启防火墙 # systemctl start firewalld
关闭防火墙 # systemctl stop firewalld
# 在防火墙启动的情况下使用以下命令:
查看已经开放的端口 # firewall-cmd --zone=public --list-ports
新增开放端口 # firewall-cmd --zone=public --add-port=端口号/tcp --permanent
重新载入开放端口 # firewall-cmd --reload
重启防火墙 # systemctl restart firewalld
5、至此,nacos已经可以启动运行(单机,且使用的是nacos内嵌的delby数据库)
standalone代表单机模式运行,非集群模式
三、替换nacos内置数据源
目前nacos仅支持mysql作为nacos的外置数据源
(1)切换到
/conf
目录下,找到如下图的sql文件
(2)创建数据库
nacos_config
,在此数据库下运行
nacos-mysql.sql
文件,运行结果如下:
(3)修改
application.properties
配置文件
# 备份文件
[root@zyf_01 conf]# cp application.properties application.properties.init
# 编辑application.properties,使用vim编辑器编辑,没有的可以下载 yum -y install vim
[root@zyf_01 conf]# vim application.properties
四、nacos集群配置
Nacos集群官方推荐使用Linux操作系统,且至少需要3个或3个以上Nacos节点才能构成集群。
此图源自
nacos官网文档
。
默认三台服务器均已进行上述配置,且均使用相同数据源作为外置数据源,以下配置在三台服务器上都要
(1)修改cluster.conf集群配置文件
# 复制cluster.conf.example文件为cluster.conf
[root@zyf_01 conf]# cp cluster.conf.example cluster.conf
# 修改cluster.conf配置文件
[root@zyf_01 conf]# vim cluster.conf
(2)运行三台服务器上的nacos
# 运行nacos(集群+外置数据源运行方式)
[root@zyf_01 bin]# sh startup.sh
# 查看运行日志
[root@zyf_01 bin]# tail -f ../logs/start.out
(3)浏览器分别输入三台服务器的
IP:端口号/nacos
思考?:我们在访问nacos集群时,集群中有多少台nacos就有多少个访问地址,那这样在项目中就会配置很多个访问地址,非常的不方便,因此我们可以使用Nginx进行反向代理,通过Nginx代理请求,同时实现负载均衡。