参考视频
1.原始方式存在的问题
以上文举例,我们使用原始方式实现远程服务的调用,存在诸多问题。其中一个点是:
所有的url都是通过硬编码的方式(在代码或配置文件中写死)配置的,若url发生变动,系统必然要大改,耦合度太高;
2.注册中心
2.1.注册中心概述
注册中心就是专门为解决这个问题而产生的。注册中心可以理解为是"服务提供者的通讯录",它记录了所有服务提供者的访问路径,且每过一定时间就向服务提供者发起健康检查,若服务宕机,注册中心就注销该服务。
总结下来,注册中心的功能:
- [服务注册] 服务提供者在启动时,将自己的服务信息注册到注册中心,以供服务调用者进行访问;
- [服务发现] 注册中心中服务的变动能够及时地被调用者发现,不论是服务的注册还是注销;
- [健康检查] 服务提供者每隔一段时间就向注册中心发送"心跳“,若达到一定规则(如长时间未发送”心跳"),该服务会被判定为宕机,随后便会被注销。
2.2.常用的注册中心
常用的注册中心有以下四种:
常用的注册中心有以下
常用的注册中心有以下四种:

2.3.服务调用流程
服务调用者借助注册中心访问服务提供者时,整体的工作流程如下:
- [启动注册中心] 注册中心(本身是一个组件,也就是一个项目)启动;
- [注册服务] 服务提供者A启动,将服务的各类信息登记到注册中心。此时服务A已被发现,且可被调用;
- [健康检查] 服务提供者会定期向注册中心发送"心跳“。若某个服务已经很长一段时间都未发送”心跳",注册中心就会认为该服务已宕机,服务将被注销;
- [调用服务] 服务调用者从注册中心获取所有的服务,并从中找到指定的服务地址,完成对服务提供者的访问;
本文概述了原始服务调用的问题,特别是url硬编码导致的高耦合。随后介绍了注册中心的作用,如服务注册、发现和健康检查,以及SpringCloud中常用的注册中心类型。重点讲解了服务调用者如何借助注册中心实现动态服务查找和调用过程。
1330

被折叠的 条评论
为什么被折叠?



