Spring Cloud(7):事件驅動(Stream)分布式緩存(Redis)及消息隊列(Kafka)


分布式緩存(Redis)及消息隊列(Kafka)

設想一種情況,服務A頻繁的調用服務B的數據,但是服務B的數據更新的並不頻繁。

 

實際上,這種情況並不少見,大多數情況,用戶的操作更多的是查詢。如果我們緩存讀操作,這樣就可以節省服務間調用及訪問數據庫的成本,從而極大的縮短服務A的請求時間,從而改善性能。

 

我們發現,如果數據更新,服務B必須及時調用服務A,讓服務A刪除該數據的緩存。或者直接與緩存服務器,刪除該數據的緩存。但是,無論使用哪種方式,都會使服務A和服務B緊密耦合。如果我們使用異步方式,使用消息在服務之間傳遞,可以有效改善這種缺點。
服務B每次更新數據后,就發布一條消息到消息隊列,而服務A從消息隊列獲取消息,並刪除該數據的緩存。服務B不需要知道消息發給誰,服務A也不需要知道消息從哪來。

接下來幾節會使用Spring Cloud Stream搭建一個如圖所示的框架。 

 

事件驅動架構(String Cloud Stream)

String Cloud可以輕松地將消息集成到基於Spring的微服務中,它是通過String Cloud Stream來實現的。String Cloud Stream是一個由注解驅動的框架,它允許開發者在String微服務架構中輕松地構建消息發布者和消費者。

String Cloud Stream中有4個組件涉及發布和接收消息:

發射器(source)

通道(channel)

綁定器(binder)

接收器(sink)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM