【发布时间】:2016-08-21 01:04:01
【问题描述】:
这是一个困扰我一段时间的问题,如何编写一系列在不同位置的不同机器上运行的微服务,而不需要对每个服务的单独位置进行硬编码?
例如,我有服务 A,它对 json 消息进行某种形式的验证。服务 A 在 box 1、3、5 上运行,随着需求的增长,可以启动更多实例。
现在假设我有服务 B,它看起来调用服务 A,我将如何与服务 A 所在的服务 B 通信?
我考虑过的可能解决方案:
使用服务 A 的“主”节点位置对服务 B 进行硬编码,然后将任务委派给服务 A 的所有实例。
使用消息队列? - 服务 B 写入一系列消息队列,服务 A 实例从设置的消息队列中读取并将结果发送回服务 B。
SSDP - 利用某种形式的简单服务发现协议来广播哪些服务在设定的网络上运行,并跟踪这些服务。
我对这种建筑风格很陌生,所以我希望我没有错过一些非常简单的东西?
【问题讨论】:
标签: architecture microservices