【发布时间】:2021-03-12 01:06:07
【问题描述】:
考虑这种情况:我有 N>2 个软件组件(微服务),它们可以通过两种不同的通信协议进行通信,具体取决于它们的部署方式。也就是说,我有两种部署场景:
-
组件将部署在同一台机器上。在这种情况下,如果我考虑性能,我不知道使用 HTTP 来通信这两个组件是否有意义。我知道有更有效的方法可以使用java在同一台机器上通信两个进程,例如套接字、RMI、RPC ...
-
组件将部署在 N 台不同的机器上。在这种情况下,在我看来,使用 HTTP 与这些组件通信是有意义的。
简而言之,我想做的是能够根据我执行部署的方式来配置通信协议:在单台机器上,例如使用RMI,但是当我在两台机器上部署时,使用HTTP .
有谁知道我如何使用 Spring Boot 做到这一点?
非常感谢!
【问题讨论】:
-
你的两个组件是否可以使用不同的协议相互通信?如果你已经实现了你只需要通过例如使用环境变量来告诉组件部署模式
-
@TongChen 是的。问题是组件内的开发如何受到影响,当您有可能使用两种通信方式时,spring Boot 是如何完成的
-
弹簧配置文件可能会有所帮助。
标签: java spring spring-boot microservices