Nacos高可用集群搭建+MySQL持久化
之前讲述了Nacos单机版的简单安装,详情请参阅 Nacos之单机版安装 或者参考 官网,本文将进一步搭建一个生产可用级别的Nacos高可用集群,并使用MySQL数据库实现数据的持久化。
架构图
下面使官方推荐的搭建模式:
本文使用Nginx来承担VIP的责任,复制负载均衡。
环境要求
- 64 bit JDK1.8+;
- 64 bit OS(本文CentOS 7.4);
- Maven 3.2+(不打包可不需要);
- 3个或以上的Nacos节点,3个以上才能构成集群;
下载安装包
请参阅Nacos之安装,下载对应的安装包,上传至 /usr/local/src
,本文使用的1.1.4版本:
解压后复制到/usr/local/nacos_cluster
,分别命名为nacos1
,nacos2
,nacos3
:
[root@localhost src]# unzip nacos-server-1.1.4.zip
[root@localhost src]# cp nacos /usr/local/nacos_cluster/nacos1 -R
[root@localhost src]# cp nacos /usr/local/nacos_cluster/nacos2 -R
[root@localhost src]# cp nacos /usr/local/nacos_cluster/nacos3 -R
数据库配置
真正生产环境建议至少主备模式,或采用高可用数据库。具体可以参考这篇文章:MySQL高可用方案选型参考。本文主角是Nacos,这里使用单机版MySQL。
新建数据库nacos_config
,然后执行nacos/conf
目录下的nacos-mysql.sql
,创建以下几张表:
集群配置
进入/usr/local/nacos_cluster1/nacos
,复制cluster.conf.example
为cluster.conf
:
cp cluster.conf.example cluster.conf
修改cluster.conf
内容如下:
127.0.0.1:8847
127.0.0.1:8848
127.0.0.1:8849
然后复制cluster.conf到nacos2和nacos3的conf下,当然你也可以分别去修改:
[root@localhost conf]# cp cluster.conf /usr/local/nacos_cluster/nacos2/conf/cluster.conf
[root@localhost conf]# cp cluster.conf /usr/local/nacos_cluster/nacos3/conf/cluster.conf
我们这里在一台机器上部署3个不同端口的Nacos节点。生产环境,建议多个主机。
修改nacos/conf
目录下的application.properties
文件:
server.port=8847 # 这里nacos1、naocs2、nacos3分别修改为8847、8848、8849,不要重复了。
# 尾部追加以下内容
spring.datasource.platform=mysql # 使用MySQL方式持久化
db.num=1 # 这里宝石几个数据库实例,多个的话,下边依次是`db.url.0`, `db.url.1` etc
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root # 用户名
db.password=root # 密码
如果启动失败,可能是内存不够用的,比如我的虚拟机就只设置了1g,启动的时候就报内存不够分配的异常。可以进入
nacos1/bin
下,修改startup.sh
,调整为合适的大小:
依次启动3个Nacos节点:
[root@localhost nacos_cluster]# ./nacos1/bin/startup.sh
[root@localhost nacos_cluster]# ./nacos1/bin/startup.sh
[root@localhost nacos_cluster]# ./nacos1/bin/startup.sh
Output:
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos_cluster/nacos1/logs/start.out
查看一下nacos节点个数:
[root@localhost nacos_cluster]# ps -ef|grep nacos|grep -v grep|wc -l
3
Nginx代理
安装nginx这里不再赘述,请自行Google搜索。
修改nginx的配置conf,添加一下内容:
upstream cluster{
server 127.0.0.1:8847;
server 127.0.0.1:8848;
server 127.0.0.1:8849;
}
server {
listen 8800;
server_name localhost;
location / {
proxy_pass http://cluster;
}
}
然后启动或者刷新Nginx:
[root@localhost nginx]# ./sbin/nginx -s reload
ngx_http_fastdfs_set pid=11240
访问测试
打开浏览器访问:http://192.168.0.14:8800/nacos/ :
登录(账号密码都是nacos),创建一个测试配置:
我们去数据库查询一下我们新添加的测试配置信息:
OK. 至此,Nacos集群+MySQL持久化的搭建就完成了。
因个人能力有限,如果不足或错误之处,欢迎指正 ~