2017-05-01 33 views
1

我們有REST POST API/api/{sellerId}/products。賣家將其用於批量上傳我們的系統。使用REST API進行批量上傳並將其推送到RabbitMQ隊列進行異步處理?

由於我們不限制股票數量,也不希望客戶等待回覆,因此我們在將這些股票推向RabbitMq時發回HTTP202狀態。

但我想知道,在這裏,我們正在雙串行/解串,

  1. 一旦當客戶推動大宗JSON請求使用HTTP POST界面我們的系統。
  2. 然後,一旦HTTP POST API將此批量請求推送到rabbitmq系統。

我們該如何優化?什麼是更標準/更好的方法來做到這一點?我們可以直接讓客戶推送Rabbitmq消息而不是公開HTTP API嗎?

回答

1

我假設客戶端正在使用Web應用程序來安全地訪問和上傳他們的庫存股票。要跳過雙重序列化,您將需要.. 1.將您的rabbitMQ放到互聯網上(可能是一個單獨的服務器) 2.可能會創建一個將生成隊列的Windows應用程序(Producer)。

但是,這將打開兩個主要的事情。 1.安全問題,因爲任何有知識的人都可以真正產生任何消息給你的rabbitMQ,從而危害你的平臺,如果不是數據的話。 2.通過多個客戶端升級或更新Windows應用程序可能是一項挑戰,併爲您的產品添加支持層/主題。

當前情況非常理想,因爲對邏輯或BI的任何更新都不會真正反映到客戶端,其次,您的HTTP API可以作爲隊列消息的安全和檢查層加倍。

相關問題