簡體   English   中英

微服務,如何在任務完成時通知后端

[英]Microservices, how to notify backend when task complete

例如,如果我有主應用程序(后端)和一些微服務,例如用於圖像裁剪。 用戶加載圖像,向后端發出請求,后端使用rabbitmq 在隊列中發布新任務,然后圖像裁剪服務拾取任務,完成它,我需要以某種方式通知后端。 這有什么選擇? 對於此類通知,我需要另一個微服務嗎?

所以......有很多方法可以做到這一點。

在高層次上,您想要實現的是產生一個或多個服務可以響應的事件。 現在,根據您可用的資源,您可以通過多種不同的方式生成事件。

  1. 如果你想完全獨立於平台,你可以使用 Apache Kafka。 這是一項很受歡迎的服務,專門針對我們的需求 -> 發布事件並大規模處理它們。 Kafka 可以集群、分區、具有多個相同類型的並行消費者(例如主后端服務的多個實例)或不同類型(碰巧對特定事件感興趣的 3 個不同微服務)。 這個壞男孩擁有一切,並因此而聞名。 您可以自己設置一個集群,也可以使用某些雲平台(例如 AWS)開箱即用的集群,但與某些特定於雲的完全不同的雲平台相比,這可能更昂貴且更難使用 -托管解決方案。

  2. 如果你在谷歌雲上運行你的東西,你可以通過使用 PubSub 服務使它更容易和更便宜。 PubSub 是一項完全托管的服務,可開箱即用(歡迎使用雲!您無需自行擴展或集群任何東西!)。

  3. 如果您在 AWS 上運行,則可以使用 SNS 或更新的替代方案 - EventBridge(有點像 SNS,但它不能做什么?)。 是的...我會推薦 EventBridge。 它可以做更多的事情……有了目標過濾規則、有效載荷轉換,它可以自動觸發更多事情……

  4. Azure...呃...事件中心...但我還沒有使用過這個...我不是一個 Azurer...因為你知道...沒有人使用 azure 來做這種事情東西...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM