前面我们介绍过:
- NACOS保姆笔记(1)——NACOS的安装和启动
- NACOS保姆笔记(2)——Spring Cloud Alibaba Nacos服务注册与发现以及负载均衡
- NACOS保姆笔记(3)——Spring Cloud Alibaba Nacos配置中心
- NACOS保姆笔记(4)——Spring Cloud Alibaba Nacos鉴权
本篇主要介绍下Nacos如何部署集群,以及集群环境下基于Spring Cloud应用端的一些配置及使用的Demo教程。
集群步骤
在本系列保姆笔记第一篇,我们已经说过Nacos的安装和部署,这里不赘述了,主要讲下集群环境下的三个注意事项,也是和单机版本不同的地方。
1,服务启动脚本
在单机版里,我们说启动时通过
./bin/startup.sh -m standalone
或者若是做成systemd服务单元(service unit)的话,从nacos.service文件里,要
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
要标记出standalone方式启动,可是集群环境下不同。
若你使用内置数据源,则
sh startup.sh -p embedded
默认使用的是外部数据源,也就是忽略这个属性参数
sh startup.sh
那么在nacos.service文件里,也同样即可
ExecStart=/usr/local/nacos/bin/startup.sh
我们走大众路线,使用外部Mysql数据源,也就是startup.sh即可。
2,集群IP组的配置
既然集群了,那么那Nacos分别在那几台机器上,要交代下的吧?
在nacos/conf/下有个cluster.conf.example文件,复制或修改文件名,我们需要在同目录下有个cluster.conf文件。该文件里非常简单,就是几行IP:端口,一个Nacos一行。
#一个Nacos一行,ip:prot
192.168.226.203:8848
192.168.226.218:8848
这样就告诉了Nacos自己的兄弟有哪些。注意了, Sping Cloud那边连接的时候也是要把这些IP都列出来。
因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面
- http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。
- http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。
- http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式
注意:使用VIP/nginx请求时,需要配置成TCP转发,不能配置http2转发,否则连接会被nginx断开。 9849和7848端口为服务端之间的通信端口,请勿暴露到外部网络环境和客户端测。
3,数据源
在单机模式下,我们不讲究数据源的说法,主要是因为单机是以测试环境来出现的。到了生产环境,还是推荐走集群的。那么数据源就要配置,且是强制要求的,不然后面程序连不上Nacos。数据源分2点说明。
3.1,Mysql连接配置数据
在nacos/conf/application.properties下,需要启用并配置Mysql相关的配置数据
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://你的ip:3316/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&