转载

Spring Cloud学习笔记(2)- 从服务发现说起

微服务架构从本质上就是对业务做了彻底解耦,让所有的业务都更加独立,减少业务之间的纠缠。可以这么认为,分层的是从编程的角度对软件开发做的解耦,数据层负责数据操作,业务层负责业务处理,表现层负责数据展示。分层更多的是站在程序员的工作分层角度对开发进行解耦,微服务是站在业务角度对开发进行解耦。用户注册、用户登陆可以作为两个单独的微服务存在,他们之间仅仅存在弱联系,如何让用户注册服务调用用户登陆服务呢?这就是服务发现机制存在的必要性,让服务消费者发现并找到相应的微服务。

服务发现的原理

服务发现的原理

Tips:

服务发现是指应用服务在启动时,向服务发现组件诸如:Zookeeper、Euraka等注册服务的相关信息。
服务消费者只要通过服务发现组件来获取相关服务的诸如访问地址、服务运行状况即可以获取相关服务。
这个全过程被称为服务发现。
复制代码

服务发现中的主要角色如下所示:

  • 服务提供者
  • 服务消费者
  • 服务发现组件

三种角色主要关系如下所示:

  • 服务提供者在启动微服务时,将服务注册至服务发现组件中。
  • 服务发现组件提供检测微服务状态的机制,诸如心跳等等方式检测微服务的运行情况,来向服务消费者提供实时的服务运行状态。
  • 当某个微服务下线后,服务发现组件将会注销相关微服务的数据,停止对该服务的访问。
  • 服务消费者不直接获取微服务的访问地址,而是通过服务发现组件来找到对应微服务的访问地址,从而实现对微服务的访问。

通过以上的信息可以得知,服务发现组件需要具备以下一些基本功能:

  • 服务注册表:该注册表提供了当前注册至服务发现组件的相关微服务的信息,诸如:访问地址、访问端口,运行状态。
  • 服务发现组件提供了访问服务注册表的API,查询API用于查询注册在当前服务发现组件上的微服务,管理API主要是微服务提供者调用用于注册、注销相关微服务。
  • 服务注册:微服务提供者通过服务注册表的管理API注册当前微服务的过程被称为服务注册。
  • 服务发现:微服务消费者通过服务注册表的查询API来查询注册至当前服务发现组件中的微服务的过程被称为服务发现。
  • 服务检查:服务发现组件可以通过诸如心跳、服务消费者调用状态等方式检查当前注册的微服务状态,这一过程被称为服务检查。
原文  https://juejin.im/post/5ef234caf265da02cf4993ef
正文到此结束
Loading...