背景
微服务或分布式环境场景下,各个服务的独立部署和分布,组合层一个分布式应用,服务和服务之间相互关联调用,如何的而管理这些服务,服务注册和服务的发现就应用而生了!
理解
参考来源:
https://www.iteye.com/blog/yangyangmyself-2334788
https://segmentfault.com/a/1190000008826496
https://youzhixueyuan.com/registration-and-discovery-of-micro-services.html
1)服务注册
意思:将服务元信息(IP,端口号等信息)服务自动将信息上传至服务注册表,并通过心跳进行同步。
注册方式:1:客户端自注册 2:第三方注册
客户端自注册 :服务注册和注销原信息绑定再我们的服务逻辑代码上,服务启动时候提交相关的信息到注册中心,当服务下线时候,也告知服务中心,进行服务注销。
缺点:(1)需要代码逻辑配合,存在入侵性(2)服务运行期间需要和注册中心保持心跳互通。第三方注册
由独立的服务 Registrar 负责注册与注销。服务启动后以某种方式通知独立的服务 Registrar ,Registrar 再提交到注册中心。
(2)服务注册表
各个服务集群,维护了一个数据库,数据库存储的是可用服务的元信息、提供给服务发现和注销。
(3)服务发现
意思:当需要使用服务时,通过读取服务注册表获取可用的服务元信息,客户端可以通过此信息连接服务器。
服务发现的方式包括:客户端服务发现和服务端服务发现。
客户端发现
客户端负责向注册中心获取相应的 ip 与 port ,多种语言需要实现同一套逻辑,有点冗余的感觉。服务端发现
由 API gateway 实现服务发现的功能。
(4)联系
服务注册机制将启动服务的信息上传至服务注册表,服务发现机制通过服务注册表实时获取可用服务的信息