September 3, 2023

分布式系统中,标识一个服务中的某一个功能,需要使用全限定名定位。

服务发现的三个必须的过程:

  • 服务注册 service registration : 服务启动的时候通知注册中心,暴露自己的坐标。
  • 服务维护 service maintaining:服务发现框架需要自己去维护服务列表的正确性,可以使用长连接等方式判断服务是否健康存活
  • 服务发现 service discovery: 服务名转换为具体的服务坐标的过程

服务发现类似于是一个基础组件的作用,所以也是需要保证高可用的

可用性 和 一致性 一直是分布式系统无法调和的矛盾

  • 基于KV结构的服务发现:
    • Zookeeper 采样 ZAB 算法,保证 CP
    • 基于 Redis 做的发现,自然是 AP
  • 基于 DNS 的服务发现:
    • SkyDNS
  • 专门做服务发现的框架:
    • Naocs : CP- Raft协议 , AP - Distro协议 - 基于 DNS完成的服务发现
    • Consul: CP
    • Eureka:AP

Nacos 服务发现和注册理论