服务注册和发现学习

转自:https://zhuanlan.zhihu.com/p/439331952(讲的很好),https://zhuanlan.zhihu.com/p/32027014

1.介绍

服务发现:精准地定位需要调用的服务ip以及端口。主要包括2部分:

  • 服务注册 — 存储服务的主机和端口信息
  • 服务发现 — 允许其他用户发现服务注册阶段存储的信息,不管是服务新增和服务删减都能实现自动发现。(也就是一个增删改查的过程。)

在服务启动的时候,先去进行注册,并且定时反馈本身功能是否正常。由服务发现机制统一负责维护一份正确或者可用的服务清单。 还需要能够提供健康监控、多种查询、实时更新高可用性等。

常见的服务发现 :zookeeper\consul\etcd。

2.服务注册

  1. 自注册:服务启动时注册到服务注册中心,在服务执行过程中,通过不断的发送心跳信息,来通知注册中心,本服务运行正常。注册中心只要超过一定的时间没有收到心跳消息,就可以将这个服务状态判断为异常,进而移除该服务的注册记录。
  2. 第三方注册:

//两者不互斥,可以结合使用。

3.服务发现

服务发现机制的关键部分是注册中心。注册中心提供管理和查询服务注册信息的API。当服务提供者的实例发生变更时(新增/删除服务),服务注册表更新最新的状态列表,并将其最新列表以适当的方式通知给服务消费者(即进行实时服务信息的推送)。分为客户端发现和服务端发现,本质区别在于客户端是否保存服务列表信息

3.1 客户端发现

在客户端模式下,如果要进行微服务调用,首先要进行的是到服务注册中心获取服务列表,然后再根据调用端本地的负载均衡策略(由客户端控制路由策略),进行服务调用。

优点:

  • client端可以定制化负载均衡算法。
  • 可以实现点对点的网状通讯,即去中心化的通讯。可以有效避开单点造成的性能瓶颈和可靠性下降等问题。

缺点:

 

3.2 服务端发现

在服务端模式下,调用方直接向服务注册中心进行请求,服务注册中心再通过自身负载均衡策略,对微服务进行调用。这个模式下,调用方不需要在自身节点维护服务发现逻辑以及服务注册信息。

优点:服务的发现逻辑对客户端是透明的。

缺点:需要额外部署和维护高可用的负载均衡器;变为集中式,注册中心和负载均衡器成为瓶颈;

4.难点

转自:https://zhuanlan.zhihu.com/p/161277955

目前的结局方案: 

 //目前不理解,什么事watcher机制?不懂。

 

posted @ 2023-11-11 22:47  lypbendlf  阅读(8)  评论(0编辑  收藏  举报