我得到了 etcd/consul/$whatever 试图解决的问题。服务消费者需要与服务提供者交谈,一个流动性极大的分布式系统需要一种机制来将两者结合起来。
然而,“服务消费者的请求去哪儿了”的问题?是旧的,IMO 已经用 MOM 解决了 - 面向消息的中间件。
在 MOM 中,这个想法是服务消费者不关心服务提供者住在哪里。他们只是发送一条消息并让消息总线负责将消息路由到适当的消费者。可以有多个提供者都在做同样的事情(基于队列的循环)或版本化的提供者(/v1/request 转到一个,/v2/request 转到另一个)。
这是一种简单而强大的集成模式,将服务接口与其实现完全分离。
然而我看到了这种对发现服务提供者的奇怪痴迷,这似乎在消费者和提供者之间建立了紧密的耦合(除了一些其他的反模式之外)。
那么,我在这里缺少什么?TIA。