簡而言之,我有興趣構建通過SNS(大部分)連接的鬆散耦合的微服務,以便實時處理API請求。使用由Lambda支持的API網關在使用SNS的微服務之間進行通信的函數
前提
- 需要所有這些到一個POST請求響應體
- 內出現不能要求客戶拉成功上傳和/或成功的路由。
AWS API網關端點
- POST/API /文檔/ uploadAndRouteDownWorkflow,執行documents.upload並接收從表示完全成功documents.upload和workflows.routeDocument功能的組合響應(上載和路線工作),部分成功(上傳但並不路線),或徹底失敗(上傳失敗)
lambda函數(EXECUT編按順序):
- documents.upload
- 從API網關端點
- 上傳文件調用到DMS(文檔管理系統)
- 創建一個SNS消息到工作流微服務以便路由文檔
- workflows.routeDocument
- 從訂閱的SNS主題調用
- 路由文件/ SNS中的消息
- 文件返回一個成功/失敗到原來的API請求
告誡爲什麼文件。上傳不會在內部調用worksflows.routeDocument
-
個
- 微服務不鬆耦合如果強迫是同步了
- 雙重計算時間兩種波長的職能(是可能)
是這種模式可能嗎?
謝謝!
因此,如果我理解正確,我需要維護某種類型的同步流程,以便將指示成功失敗的結果返回到原始POST請求?在這一點上,如果我想讓這些部分鬆散耦合,我需要尋找一種看起來不同於AWS的解決方案。通過直接回復(https://www.rabbitmq.com/direct-reply-to.html)閱讀RabbitMQ中的RPC模式似乎符合我對此感興趣的內容。 AWS中有另一種方式來保持事物鬆散耦合,同時保持同步行爲嗎? –
RabbitMQ RPC模式也可以與Amazon的SQS一起實現。但是,您需要認識到RabbitMQ仍在使用隊列和輪詢來傳遞響應。在任何完全解耦的解決方案中,您將擁有一個長期運行的'documents.upload'函數來輪詢數據庫或隊列,或者等待由'workflows.routeDocument'函數生成的響應。 –
@DavidGarza您可能對今天的AWS許可感興趣:https://aws.amazon.com/about-aws/whats-new/2017/02/amazon-api-gateway-integration-with-aws-step-functions/ –