08-Nacos-CP与AP模式
•
移动开发
- Zookeeper:保证CP,放弃可用性;一旦zookeeper集群中master节点宕了,则会重新选举leader,这个过程可能非常漫长,在这过程中服务不可用。
- Eureka:保证AP,放弃一致性;Eureka集群中的各节点平等,一旦某个节点宕了,其他节点正常服务(一旦客户端发现注册失败,则将会连接集群中其他节点),虽然保证了可用性,但是每个节点的数据可能不是最新的。
- Nacos:同时支持CP和AP,默认是AP,可以切换;AP模式下以临时实例注册,CP模式下服务永久实例注册。
1、AP模式
默认,临时实例 ,
健康检查:主动上报服务端,异常服务端自动剔除
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.20.113:8848
namespace: cedb1f46-d9ae-43b1-99db-39b245152543
group: DEFAULT_GROUP
# true=临时实例
ephemeral: true
2、CP模式
设置为永久实例,ephemeral=false
永久实例,
健康检查:服务端广播,异常标记为不健康
下线需要通过APi接口调用
curl -X DELETE 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=user&groupName=DEFAULT_GROUP&namespaceId=cedb1f46-d9ae-43b1-99db-39b245152543&ip=169.254.100.102&clusterName=DEFAULT&port=8001&ephemeral=false'
服务端集群部署下开启CP模式
# 数据库连接信息 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://your-mysql-server:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root # 使用CP模式 nacos.core.auth.enabled=true nacos.core.auth.cache.enable=false
3、保护阈值:
实例异常,流量转移,导致雪崩。
健康实例数/总实例数 < 保护阈值(0-1) ,进行限流(返回健康与不健康实例),确保剩余实例可用
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/37819ef18d.html
