发现服务和服务顺序

Discovery service and order of services

为了简化这个问题,假设我有两个服务:

  1. 数据存储
  2. 业务层,在启动时连接到数据存储。

显然,业务层必须等到数据存储准备就绪后才能连接和使用它。

'dependency' 关系在 'Discovery service' 世界(zookeeper、etcd...)中是如何解决的?据我所知,注册中心只保留服务信息,服务之间没有依赖关系。

至少有两种方法可以解决这个问题:

  1. 服务发现协议将注册服务的 IOPE(Input/Output/Preconditions 或 Postconditions/Effects)。此依赖项可以是 Preconditions/Postconditions 集的一部分。
  2. 这两项服务可以成为设计工作流程的一部分。在发现和组合服务(手动或自动)时,可以通过将第一个服务(业务层)的输出映射到第二个服务(数据存储)的输入来实现依赖关系。