官网:https://nacos.io/zh-cn/
nacos集群条件官网也写清楚了,集群需要三台服务,并且需要一个总入口在分发(可以是Nginx)。
默认的Nacos使用嵌入式数据库实现数据的存储,所以启动多个默认配置下的Nacos节点,数据存储存在一致性的问题,为了解决这个问题,Nacos采用了集中存储的方式来支持集群化部署,目前只支持Mysql的存储(5.6.5+)。
注意:1.4之前的版本默认不支持MySQL8以上,数据库连接需要找到对应的版本,当然也可以修改源码进行修改数据库的依赖
初始化nacos将内置库修改为MySQL
1.执行nacos自带的SQL文件:
使用MySQL数据库执行schema.sql
2.编辑application.properties , 加入如下内容(mysql的相关配置),并且修改启动端口,需要和下面配置集群的端口一致
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/springcloud2020?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456
3.集群文件修改
- 在conf文件下,将cluster.conf.example复制一份cluster.conf,我们只需要操作cluster.conf。
cp cluster.conf.example cluster.conf
- 编辑cluster.conf,将默认的IP注释掉或者删除。配置本机IP地址+端口。IP地址不能为127.0.0.1或者localhost。端口就是你后面启动nacos需要访问的端口
192.168.0.104:8846
192.168.0.104:8847
198.168.0.104:8848
- 复制修改好的nacos,然后按照上面的修改端口步骤,修改端口就可以了
验证
到这里面我们nacos集群配置就好了,但是根据官网图片,我们需要一个总入口,进行负载均衡,这个工作当然是Nginx的了
4.Nginx配置
- 编辑conf目录下面的nginx.conf文件,新增自己的nacos集群
启动Nginx
./nginx -c /usr/local/nginx/conf/nginx.conf
验证
访问:http://192.168.0.105:8080/nacos
Java程序连接nacos集群
其实和单机版本的代码没有任何区别,只需要将原来的单机版地址修改为nacos集群的Nginx的地址即可。
这里就不粘贴其他代码了,只粘贴了一个yml配置
server:
port: 9002
spring:
application:
name: nacos-provider-payment
cloud:
nacos:
discovery:
#server-addr: localhost:8848 #告诉微服务,nacos的访问地址
server-addr: http://192.168.0.105:8080/ #告诉微服务,nacos的集群地址
management:
endpoints:
web:
exposure:
include: '*' #暴露端点