1.目前consul有一些问题,比如注册与发现比较慢,注册错误服务不能自动删除,集群服务不同步等问题
2.目前流行nacos,他拥有配置中心功能,会解决后面k8s配置、或者当前本地配置的问题
3.配合Sentinel做接口限流。
*本文档只说nacos集群环境如何搭建,其他功能后续上线
部署1个数据库(内置集群,高可用),部署3个nacos服务。
nacos服务端选择版本 :nacos-server-2.1.0.tar.gz
nacos客户端选择版本(目前线上代码已内置)
```
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>
```
```
nacos专用的中间数据库
mysqlmiddle.ruipos
三台nacos
nacosv31.ruipos
nacosv32.ruipos
nacosv32.ruipos
```
```
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://mysqlmiddle.ruipos:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=hyy
db.password.0=hyyuser
```
不能使用域名,使用域名会多自动多出一条本机ip地址
```
192.168.1.191:8848
192.168.1.76:8848
192.168.1.185:8848
```
默认集群启动方式,启动命令:/opt/nacos/nacos/bin/bin/startup.sh
关闭命令:/bin/shutdown.sh
命名空间ID(不填则自动生成) (请同名称):dev
命名空间名:dev
描述:dev
```
开发环境dev 测试环境cs 集成环境jc 正式环境rls
```
当前服务已经集成nacos包
新增修改配置文件:outside-app.properties、outside.properties、outside-stat.properties、outside-control.properties、 outside-paymen.yml
```
spring.cloud.nacos.discovery.namespace=dev
spring.cloud.nacos.discovery.group=dev2
spring.cloud.nacos.discovery.server-addr=nacosv31.ruipos:8848,nacosv32.ruipos:8848,nacosv33.ruipos:8848
spring.cloud.consul.enabled=false
spring.cloud.nacos.discovery.enabled=true
consul:
enabled: false
nacos:
discovery:
enabled: true
server-addr: nacosv31.ruipos:8848,nacosv32.ruipos:8848,nacosv33.ruipos:8848
namespace: dev
group: dev2
```
·nacos服务启动默认2g内存,配置见/bin/startup.sh
·2.0版本注册不同步,可能原下的是开发版本,改用2.1正式版本
·nacos机器域名不能使用“_”符号
·nacos除了开放8848 http端口,还要开放9848、9849两个tcp端口。
·cluster.conf文件错误会导致集群数据不同步
·正常情况下,单台服务只有一个nacos进程,出现这个情况kill全部机器再启动。
修改配置文件重启服务outside-app.properties、outside.properties、outside-stat.properties、outside-control.properties、 outside-paymen.yml
```
spring.cloud.consul.enabled=true
spring.cloud.nacos.discovery.enabled=false
consul:
enabled: true
nacos:
discovery:
```