無廢話技術選型之--消息中間件選型(rabbitMQ、rocketMQ、kafka)


0-前言

  消息中間件在高並發系統中作用尤為重要,幾乎必不可少,現在幾乎都是rabbitMQ、rocketMQ、kafka的天下,

  其他的請忘了它們;

1-消息中間件的作用

  提升系統性能;系統解耦;大流量削峰;

2-rabbitMQ、rocketMQ、kafka對比

kafka:

優點:

  1、高吞吐量、高性能,單機十幾萬QPS

  2、Kafka支持集群部署

缺點:

  1、有可能會造成數據丟失

  2、功能單一,主要就是收發消息;缺少高級功能;

rabbitMQ:

優點:

  1、保證數據不丟失;

  2、高可用,有高級功能;如消息重試、死信隊列等

缺點:

  1、性能較低,QPS幾萬;

  2、集群線性擴展麻煩;

  3、erlang實現,懂得人不多,二次開發困難;

rocketMQ:

優點:

  1、高吞吐量、高性能,單機十萬QPS

  2、保證數據絕對不丟失

  3、支持大規模集群部署,線性擴展方便

  4、支持各種高級的功能,如延遲消息、消息回朔等

  5、java實現,二次開發方便

缺點:

  1、比kafka性能略低

3-如何選擇

1、小項目可以選擇rabbitMQ,性能略低,但使用和部署都簡單;

2、性能要求極高,且能允許丟失部分數據,可以選擇kafka,比如大數據日志處理相關場景;

3、除以上之外,rocketMQ無疑是一步到位的方案;

 

實際項目中,rocketMQ是首選;個人牆裂推薦;

實際上,除了大數據處理上適當考慮增加kafka,其他時候,rocketMQ就已經一勞永逸了;


免責聲明!

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



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