概述
Nacos = Eureka + Config + Bus
官方文档. 下载地址.
下载好之后需要配置 nacos 的mysql 链接
我直接启动会报错,网上查了之后需要配置mysql.暂时还不知道为什么
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
mysql 创建 nacos 数据库. 运行conf/nacos-mysql.sql
文件.之后启动成功
访问 http://localhost:8848/nacos 账号密码为 nacos nacos
启动单机版 nacos ./startup.sh -m standalone
Nacos 作为注册中心
服务创建
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- yml 文件
server:
port: 9001
spring:
application:
name: provider-01
cloud:
nacos:
discovery:
server-addr: localhost:8848
management:
endpoint:
web:
exposure:
include: "*"
CAP理论以及注册中心比较
CAP 是分布式系统中的三种情况,最多只能满足两种
- C(一致性):
所有数据库集群节点在同一时间点看到的数据完全一致,即所有节点能实时保持数据同步。
- A(可用性):
读写操作永远是成功的。即服务一直是可用的,即使集群一部分节点故障,集群整体还能正常响应客户端的读写请求。
- P(分区容错性) :
尽管系统中有任意的信息丢失或故障,系统仍在继续运行。
其中 eureka 和 Nacos 都有 AP 模式,及短时间内,集群之间的数据可能不一致. 而Nacos 还支持 CP 模式,及注册中心有一台服务挂了,及所有服务暂停对外服务
Nacos 集群和持久化配置
官网建议的nacos集群配置是 3台nacos + 1台nginx + 1台mysql
- Linux 上mysql 数据库配置
创建nacos数据库 运行conf/nacos-mysql.sql 脚本
- application.properties 配置
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
- 修改
cluster.conf.example
为 cluster.conf 并且修改内容, 注意,ip不能写127.0.0.1
192.168.16.101:8847
192.168.16.102:8848
192.168.16.103:8849
- 部署三台不同的nacos实例到三台机器上
- 修改nginx 配置 然后
sudo nginx -c /usr/local/etc/nginx/nginx.conf
启动nginx