基于事件的微服务:使用Broker的MQTT或使用API GATEWAY的HTTP?

问题描述 投票:0回答:2

我正在尝试使用微服务开发一个项目。

我对此主题有一些疑问(不清楚):>

1)

如何实现微服务通信?

A] HTTP:每个微服务都公开HTTP API,即API GATEWAY广播请求。

B] MQTT:每个微服务发布/订阅到代理

C]两者:但是,如何理解何时一个比另一个更好?

即使对于通常通过HTTP执行的经典操作,我是否也将pub / sub协议用作标准?例如,我有两个微服务:网络管理

产品服务web-management是一个面板,管理员可以使用该面板在其电子商务数字商店中添加,修改,...产品。假设我们要实现createProduct操作。这是command(根据事件/命令的区别),是一对一的通信。

我可以在product-service中打开添加新产品的API,例如(POST,“ / product”)。我还可以在productCreationRequest

事件中实现对命令的转换。在这种情况下:web-managemnet发布此事件。 product-service会在收到通知后执行操作并发出productCreated事件,并监听productCreationRequest事件(以及productUpdateRequest,productGetEvents等)。

我发现这种情况很危险。例如,last-occasion-service

可能会收听productCreated并立即向客户发送消息(电子邮件或推送通知)。您如何看待这个用例?

2)哪个可能是有效的代理(我将使用docker-compose或kubernetes编排容器化微服务:所采用的语言可能是java,javascript,python)?

我正在尝试使用微服务开发一个项目。我对此主题有一些疑问(有些不清楚):1)如何实现微服务通信? A)HTTP:每个微服务...

rest mqtt publish-subscribe broker
2个回答
0
投票

考虑将SMF框架用于Javascript / Node.js,它通过微服务之间的消息代理(RabbitMQ)帮助原型发布/订阅通信:


0
投票

两者都绝对有可能!选择一个代理,使您可以轻松地在HTTP(同步)通信与更多异步事件驱动的发布/订阅之间进行混合和匹配。它应该允许您根据需要在两个选项之间迁移微服务。

© www.soinside.com 2019 - 2024. All rights reserved.