转载声明 : 该文章出处为 扛麻袋的少年
接上一篇文章:Spring Cloud Alibaba Nacos 用于服务注册和配置中心。掌握了 Nacos 用于 服务注册和配置中心
。为了满足高可用,单节点 Nacos 服务肯定是不够的,接下来就开始 Nacos 集群环境搭建
。
nacos 安装目录:/usr/local/env/
说明: 开源时,推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面
直连ip模式
,机器挂则需要修改ip才可以使用。挂载VIP模式
,直连vip即可,下面挂server真实ip,可读性不好。域名 + VIP模式
,可读性好,而且换ip方便,推荐模式。解惑:VIP??
此处的 VIP 指代的是 Virtual IP
(虚拟IP)的意思,官方文档说明不太清楚。通常情况下指代的是 Nginx。
在上篇博客:Spring Cloud Alibaba Nacos 用于服务注册和配置中心,手动将 Nacos 服务关闭再启动。存储在 Nacos 中的配置信息并不会丢失。这是因为 Nacos 默认内置 DerBy 数据库。
嵌入式数据库,请参考:nacos pom.xml 有引入 derby 依赖
在 Nacos 0.7 版本之前,在单机模式时 nacos 使用嵌入式数据库(derby)实现数据的存储,不方便观察数据存储的基本情况。0.7 版本增加了支持 mysql 数据源能力。
具体的操作步骤:
conf/application.properties
文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。Nacos支持三种部署模式
集群模式 - 用于生产环境,确保高可用。
此处附:Nacos集群模式部署官方文档
服务器IP | 部署服务 | 端口 | 备注 |
---|---|---|---|
192.168.204.202 | MySQL 5.7.28 | 3306 | 测试,使用单机 MySQL,高可用参考:MySQL 5.7.28 主从复制实现 |
192.168.204.202 | Nginx 1.16.0 | 8807 | 测试,使用单机 Nginx,Nginx集群搭建请自行了解(Nginx默认端口为80,此处负载均衡使用8087端口) |
192.168.204.202 | nacos | 8848 | 集群节点01:nacos 01 |
192.168.204.203 | nacos | 8848 | 集群节点02:nacos 02 |
192.168.204.204 | nacos | 8848 | 集群节点03:nacos 03 |
提示: 三台机器配置相同,此处对一台进行配置。使用命令 scp 发送到其他两台机器即可,此处以 192.168.204.202
为例说明。
进入 nacos 安装目录 conf 文件下,找到 nacos-mysql.sql 脚本
。
创建 nacos_config 数据库,并执行 nacos-mysql.sql 脚本。
进入 nacos 安装目录 conf 文件下,application.properties
配置文件添加 mysql 支持。
添加mysql支持
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.204.202:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
进入 conf 目录,使用命令:cp cluster.conf.example cluster.conf
拷贝一份,重命名为 cluster.conf,在 cluster.conf 中进行配置,说明哪几台机器组成集群(填写的是 nacos 集群3个节点所在 IP:端口号
,不要写 127.0.0.1,必须是Linux的真实IP)
192.168.204.202:8848
192.168.204.203:8848
192.168.204.204:8848
nacos 启动时,默认 -Xms2g -Xmx2g
。如果你是在多台虚拟机测试,配置紧张,这一步就比较重要了。如果服务器配置很优秀,这一步可以绕过。
配置紧张会导致以下情况的出现:
Xms 是指设定程序启动时占用内存大小。
一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。
Xmx 是指设定程序运行期间最大可占用的内存大小。
如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。
我们进入 bin 目录,使用 vim startup.sh
对其进行修改,将其按照配置修改到指定大小即可。(好像可以通过启动时添加 Xms 参数方式修改,我忘了怎么搞了,此处就直接修改 .sh
启动脚本了)
192.168.204.202 一台 nacos 集群环境配置完成,使用 scp 命令,将 nacos 目录分发到 203/204
两台机器。scp 命令的使用如下:(scp命令使用介绍,请参考:Linux命令—scp),不使用 scp 命令,你也可以 rz、sz 以打包的方式进行上传。
scp -r /usr/local/env/nacos [email protected]:/usr/local/env/
scp -r /usr/local/env/nacos [email protected]:/usr/local/env/
在此处,已经默认 Nginx 服务已经OK,Nginx 服务跑在 192.168.204.202
。如需 Nginx 的搭建过程,请自行。
进入nginx/conf
目录,对 nginx.conf
添加 nacos 集群配置,配置如下图所示:
配置完成,进入 sbin 目录,使用 ./nginx -c /usr/local/env/nginx-1.16.0/conf/nginx.conf
启动 nginx,使用 -c
加载指定配置文件,路径为 nginx.conf 所在路径。启动完成,通过命令:ps aux | grep nginx
查看 nginx 是否启动。如图已经启动成功。
到此为止,Nginx 配置完成。
进入 nacos 安装所在的 bin 目录,使用 sh startup.sh
启动 集群中的 3台 nacos。可以通过nacos安装路劲 logs目录,使用 tail -f nacos.log
查看日志。
启动成功提示:
如果虚拟机资源紧张,此处会一直很长时间在 nacos is starting... 状态,一定注意自己服务器的配置。
已经配置 Nginx 负载均衡,所以我们使用 Nginx 8087 端口进入Nacos 控制台:http://192.168.204.202:8087/nacos/
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: 192.168.204.202:8087 #配置Nacos地址(集群使用Nginx,此处需配置Nginx地址)
此处,1台提供服务(集群环境,共3台,9001、9002、9003 端口
),1台用于消费(83端口
)。启动项目,可以看到服务已经成功注册到 Nacos。
延续上一篇博客示例:Spring Cloud Alibaba Nacos 用于服务注册和配置中心,使用 Nacos 集群作为注册中心。开始服务调用,可以正常实现负载均衡,如下图所示:
Nacos集群搭建、持久化配置介绍到此为止。
步骤很详细,本文不提供代码下载。谢谢Thanks♪(・ω・)ノ
下一篇:Spring Cloud Alibaba Sentinel 介绍、基本使用