簡述kafka消息中間件在雲計算模型的應用
- 2019 年 10 月 6 日
- 筆記
在雲計算模型中,很多應用部署在一起,將產生數據交互的強烈需求。如在雙11的時侯,幾千萬人向時向商城的訂單系統下訂單,而支付系統的能力只有幾十萬人的同時支付處理能力,怎麼辦?傳統的處理方案主要是:限制商城同時下單的人數,但現實誰會拒絕用戶下訂單,這是現金流。因此,按照現實生活中公交車排隊的處理經驗,很多人流同時上一路公交車,採用排隊機制,這種方案至少保證最終都上車,等待時間會增加。
圖1:沒有排隊機制,最終造成治安事件,最終大家都上不了車

圖2:排隊機制,有秩序,最終保證每個人都能上車

一、為了解決,應用之間排隊的需求,引入了消息中間件,業務常見的有kafaka、RabbitMQ等,一般稱為MQ中間件。消息件的應用方式主要有:點對點方式:
1、點對點發送模型。類似於QQ點對點聊天,當接收者不在線時,QQ服務器暫時緩存信息,當接收者上線時再將該離線消息再接收。

2、發佈、訂閱模型。類似於新浪微博關注一些明星,當明星發佈新消息時,我們(關注了該明星的人)登錄weibo app時就能收到該明星的新消息,相當於群發機制。新浪通過該機制大大降低了服務器的開銷,實現了app登錄時按需獲取。

二、消息中間件的價值很大。消息中間件在雲計算中用得非常多,例如,採集web server產生的大量日誌;商城訂單系統等。
1、消峰作用:降低了業務在高峰期可能產生的業務死機影響,將高峰期的業務延緩處理,保證不影響業務的最終執行。如淘寶商城。
2、保證數據安全:通過消息中間件的緩存、確認機制,保證消息的最終執行可靠。如QQ離線聊天。
3、解耦軟件,保證靈活性:數據的發送端、接收端不再強關聯,由第三方軟件進行管理,可保證數據處理的靈活性。如weibo的明星關注訂閱功能。