【发布时间】:2020-06-27 18:06:10
【问题描述】:
我正在尝试使用微服务开发一个项目。
我对这个话题有一些疑问(有些不清楚):
1)如何实现微服务通信?
A) HTTP :每个微服务都暴露 HTTP API ,一个 API GATEWAY 广播请求。
B) MQTT:每个微服务发布/订阅到代理
C) 两者:但是如何理解什么时候比另一个更好?
即使对于通常通过 HTTP 执行的经典操作,我是否也必须使用 pub/sub 协议作为标准?例如我有两个微服务: 网络管理和产品服务。 web-management 是一个面板,允许管理员在其电子商务数字商店中添加、修改、...产品。假设我们要实现 createProduct 操作。这是一个命令(根据事件/命令区分),一对一的通信。
我可以在产品服务中打开一个 API,比如添加新产品的 (POST, "/product")。我还可以在 productCreationRequest 事件中实现此转换命令。在这种情况下:web-managemnet 发布此事件。 product-service 在收到通知后侦听 productCreationRequest 事件(以及 productUpdateRequest、productGetEvents...),它会执行操作并发出 productCreated事件。
我发现这种情况处于临界状态。例如,last-occasion-service 可能会监听 productCreated 并立即向客户发送消息(电子邮件或推送通知)。您如何看待这个用例?
2) 哪个可能是有效的代理(我将使用 docker-compose 或 kubernetes 来编排容器化微服务:采用的语言可能是 java、javascript、python)?
【问题讨论】:
标签: rest mqtt publish-subscribe broker