微服务,任务完成后如何通知后端

时间:2020-10-21 13:33:02

标签: node.js rabbitmq

例如,如果我有主应用程序(后端)和一些微服务,例如用于图像裁剪。 用户加载图像,向后端发出请求,使用Rabbitmq后端在队列中发布新任务,然后图像裁剪服务拾取任务,完成任务,我需要以某种方式通知后端。 有什么选择呢?我需要其他微服务来接收此类通知吗?

1 个答案:

答案 0 :(得分:0)

所以...有很多方法可以做到这一点。

从总体上讲,您想要实现的是产生一个事件,一个或多个服务可以响应。现在,根据可用的内容,您可以通过多种不同方式来制作事件。

  1. 如果要完全独立于平台,则可以使用Apache Kafka。这是一项特别适合我们需要的流行服务->发布事件并进行大规模处理。 Kafka可以被集群,分区,具有相同类型(例如您的主要后端服务的多个实例)或不同类型(碰巧对特定事件感兴趣的3个不同的微服务)的多个并行使用者。这个坏男孩拥有一切,因此而闻名。您可以自己设置集群,也可以使用某些云平台(例如AWS)提供的现成集群,但是与某些特定于云的完全云平台相比,这可能更昂贵,更难使用。托管解决方案。

  2. 如果您在Google云端上运行自己的东西,则可以使用PubSub服务使其更轻松,更便宜。 PubSub是一种完全托管的服务,可以即开即用地扩展(欢迎使用云!您无需自己扩展或群集任何东西!)。

  3. 如果您在AWS上运行,则可以使用SNS或更新的替代产品-EventBridge(有点像SNS,但是不能做什么?)。是的...我会推荐EventBridge。它可以做更多...利用目标过滤规则,有效负载转换,它可以自动触发更多事情...

  4. Azure ...嗯... Event Hub ...但是我还没有使用过它...我不是Azurer太多...因为您知道...没人对这种东西使用天蓝色...

相关问题