Spring Cloud Alibaba 教程 | Nacos(六)

集群模式部署

前面我们已经学习了Nacos作为注册中心、配置中心的相关功能,但是我们之前启动Nacos是通过单实例模式启动的,只适合在学习和开发阶段,生产环境需要保证Nacos的高可用,所以今天我们来学习一下Nacos的集群模式部署。

官方推荐使用:http://nacos.com:port/openAPI 域名 + VIP模式搭建Nacos集群。
Nacos集群模式是需要两个条件的:

  1. 需要将Nacos数据持久化存储到Mysql数据库(单例模式默认使用了内嵌数据库)。
  2. 需要为集群的多个实例实现VIP功能(通常通过Nginx实现)。

在这里插入图片描述

使用Mysql存储数据

第一步:初始化mysql数据库。数据库版本要求5.6.5以上,数据库初始化文件为nacos-mysql.sql,存放在nacos的config目录里面。
在这里插入图片描述
在这里插入图片描述
第二步:修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://192.168.0.205:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

在这里插入图片描述
如果数据库有多个实例,可以按照下面配置方式添加多个Mysql实例

spring.datasource.platform=mysql

#数据库实例个数
db.num=2

# 第1个实例的地址
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
# 第2个实例的地址
db.url.1=jdbc:mysql://11.162.196.17:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=123456

集群模式启动Nacos

集群模式至少需要两个Nacos实例才能维持,所以要保证Nacos高可用就必须至少要有三个实例。由于作者机器有限,我就在一台Linux机器192.168.0.127上启动三个不同端口的Nacos实例,在bin目录下对startup.sh文件复制出三个新的文件:
startup-8841.sh、startup-8842.sh、startup-8843.sh,并通过-Dserver.port参数指定应用运行端口。
在这里插入图片描述
在这里插入图片描述
接着复制conf目录下cluster.conf.example文件出一个新文件cluster.conf,并配置上所有集群节点的地址和端口信息,最后依次执行三个startup-xxx.sh脚本文件启动Nacos。(注意:不需要添加任何模式参数,将以集群模式启动)
在这里插入图片描述
在这里插入图片描述
启动之后Linux需要防火墙开放相应的三个服务端口,同时可以依次访问三个实例测试是否启动成功。

通过Nginx实现VIP

实现VIP的方式很多,这里我简单介绍一下使用Nginx实现集群模式的VIP功能。
关于如何安装Nginx可以参考这篇文章:https://www.runoob.com/linux/nginx-install-setup.html
在这里插入图片描述
安装好Nginx之后,修改conf目录下的nginx.conf文件,实现简单的VIP功能配置,最后启动Nginx。

upstream nacoscluster {
    server 192.168.0.127:8841;
    server 192.168.0.127:8842; 
    server 192.168.0.127:8841;
}

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /nacos/ {
        #root   html;
        #index  index.html index.htm;
        proxy_pass http://nacoscluster/nacos/;
    }
}

简单测试集群模式

1、访问192.168.0.17/nacos可以正常访问,前面说到的功能都可以正常使用。
2、Nacos集群模式需要至少两个存活实例节点,读者朋友可以通过关闭实例节点来测试验证。

关注公众号了解更多原创博文

Alt
感谢每一位关注的读者朋友,你们的关注是我继续写作与分享的动力!!!

posted @ 2020-01-09 14:03  攻城狮Luke  阅读(746)  评论(0编辑  收藏  举报