2012-03-15 35 views
2

在我目前的項目中,我們正在實現一個Web服務層,我們要使用分離RabbitMQ的這一層。這最後給了我一個非常薄的web服務層。與此相關的挑戰是所有的web服務調用都是同步的。 Web服務層的調用者需要得到響應。用RabbitMQ解耦同步web服務層,好或壞主意?

我在想,如果它是好還是壞主意做的RabbitMQ脫鉤?

回答

4

如果基礎Web服務上,其中的更新/插入分開操作的查詢則可以使用兔以去耦合的方式來處理插入一個CQRS圖案/更新,使得所述web服務請求丟棄的消息包含要插入/更新到隊列中的信息,然後返回。這樣,你不會等待數據庫提交事務。 然後,您將有一個單獨的服務來使用這些消息並進行適當的數據庫插入/更新調用。

您的疑問顯然還是爲了返回信息與數據庫直接交互。

至於這是否是好還是壞主意,這完全是主觀的。如果你的數據庫非常簡單並且插入/更新沒有可觀的時間,那麼你可能會在很少或者沒有淨收益的情況下引入複雜性。例如,您可以使用javascript對您的Web服務進行異步調用來處理帖子,從而爲最終用戶提供響應式體驗。