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://net2asp.com/37819ef18d.html