1 優點
解耦:通過pub/sub發布訂閱訊息,解除系統之間的耦合性
非同步:非同步處理請求,實現快速響應
削峰:mysql一般可以支援每秒2k請求,將請求寫入訊息中介軟體,慢慢拉取
2 缺點
可用性降低:請求處理依賴訊息中介軟體
複雜的提高:需要處理重複消費、訊息丟失、訊息傳遞順序等
一致性問題:訊息消費可能失敗,導致資料不一致
3 對比
特性activemq
rabbitmq
rocketmq
kafka
單機吞吐量
萬級萬級
十萬級,高吞吐
十萬級,高吞吐,常用與實時計算、日誌採集等場景
topic對吞吐量影響
topic在幾百/幾千時,吞吐量會有較小的下降
topic在幾十/幾百時,吞吐量會大幅度下降
時效性毫秒
微妙毫秒
毫秒內可用性
高,通過主從架構實現高可用
高,通過主從架構實現高可用
非常高,分布式架構
非常高,分布式,乙個資料多副本,部分宕機不會丟失資料,不會不可用
可靠性較低概率丟失資料
引數優化後可0丟失
引數優化後可0丟失
功能支援
極其完備
併發強、效能極好、延時很低
較為完善、分布式、拓展性好
較為簡單
4 建議
activemq:沒有大規模吞吐場景驗證,沒有活躍社群,不建議
rabbitmq:開源、社群活躍,erlang語言開發
rocketmq:阿里出品
kafka:大資料領域業內標準,社群活躍
訊息中介軟體 有什麼優缺點?
首先,我們先來確認下業界使用mq的三大場景。1.1 場景一 a 系統傳送資料到 bcd 三個系統,通過介面呼叫傳送。如果 e 系統也要這個資料呢?那如果 c 系統現在不需要了呢?a 系統負責人幾乎崩潰 在這個場景中,a系統和各個系統之間有複雜的耦合關係 如果使用mq,a系統生產一條資料,傳送到mq中...
訊息中介軟體的技術選型
rabbitmq activemq和zeromq都是極好的訊息中介軟體,但是我們在專案中該選擇哪個更適合呢?很多開發者面臨這個煩惱。下面我會對這三個訊息中介軟體做乙個比較,看了後你們就心中有數了。rabbitmq是amqp協議領先的乙個實現,它實現了 broker 架構,意味著訊息在傳送到客戶端之前...
訊息中介軟體
1.訊息的優先順序 2.訊息排序 3.訊息過濾 4.訊息持久化 5.訊息重試 6.事務的支援 7.broker滿 生產者,佇列,消費者 訊息佇列的優點 1 解耦2 非同步訊息,系統響應 在jms中,有兩種訊息模型 點對點模式和發布訂閱模式。1.在點對點模式中 有三種角色 1 訊息佇列,傳送者,接受者...