Architecture 无需硬编码的微服务发现最佳实践?
这是一个困扰了我一段时间的问题,如何编写一系列在不同位置的不同机器上运行的微服务,而不需要对每个服务进行硬编码 比如说,我有一个服务,它对json消息进行某种形式的验证。服务A在框1、3、5上运行,随着需求的增长,可以提供更多实例 现在假设我有服务B,它看起来调用服务A,我将如何与我的服务A所在的服务B通信 我考虑过的可能解决方案:Architecture 无需硬编码的微服务发现最佳实践?,architecture,microservices,Architecture,Microservices,这是一个困扰了我一段时间的问题,如何编写一系列在不同位置的不同机器上运行的微服务,而不需要对每个服务进行硬编码 比如说,我有一个服务,它对json消息进行某种形式的验证。服务A在框1、3、5上运行,随着需求的增长,可以提供更多实例 现在假设我有服务B,它看起来调用服务A,我将如何与我的服务A所在的服务B通信 我考虑过的可能解决方案: 使用服务a的“主”节点位置对服务B进行硬编码,然后将任务委派给服务a的所有实例 消息队列的利用率?-服务B写入一系列消息队列,服务a实例从设置的消息队列读取,并将
- 使用服务a的“主”节点位置对服务B进行硬编码,然后将任务委派给服务a的所有实例
- 消息队列的利用率?-服务B写入一系列消息队列,服务a实例从设置的消息队列读取,并将结果发送回服务B
- SSDP-利用某种形式的简单服务发现协议来广播哪些服务正在集合网络的何处运行,并跟踪这些服务
我对这种体系结构风格还很陌生,所以我希望我没有错过一些非常简单的东西?一般来说,有两种实现服务发现的方法:
https://registry-1
而不是可能更改的特定IP地址
根据您希望在系统中使用的通信机制,消息队列将帮助您的服务进行通信,但对发现没有帮助。在这种方法中,您仍将使用DNS和可配置属性来告诉每个微服务消息队列的位置。然后,各个服务将向队列发布和订阅消息。微服务永远不会知道其他服务(没有发现),所有通信都将通过队列中的消息进行
详细介绍这些方法,并涵盖您可能感兴趣的其他领域