文章目錄
- 問題
-
- 解決
問題
商品的原始資料存儲在資料庫中。
當資料庫中的資料發生變化,搜尋微服務中索引庫中的資料不能及時更新。
當資料庫中的資料發生變化,頁面靜态化微服務中的靜态頁面資料不能及時更新。
解決
如果每次改變原始資料都修改索引庫和靜态頁面就會使微服務之間耦合。
是以,我們使用消息隊列來解決這個問題。
消息隊列詳情
Spring AMQP詳情
消息隊列是典型的:生産者、消費者模型。生産者不斷向消息隊列中生産消息,消費者不斷的從隊列中擷取消息。因為消息的生産和消費都是異步的,而且隻關心消息的發送和接收,沒有業務邏輯的侵入,這樣就實作了生産者和消費者的解耦。
這樣商品服務對商品增删改以後,無需去操作索引庫或靜态頁面,隻是發送一條消息,也不關心消息被誰接收。
搜尋服務和靜态頁面服務接收消息,分别去處理索引庫和靜态頁面。