rocketMQ 的簡單介紹

rocketMQ是阿里開源產品,後捐獻給了apache成爲旗下產品。

rocketMQ是根據amqp協議採用java語言編寫的成熟企業級消息產品。

This diagram shows the flow of messages through the AMQ model server:

路由規則:從exchange路由到messageQueue的邏輯:

The Direct Exchange Type:直連模式,精確匹配routing key;

The Fanout Exchange Type:廣播模式;

The Topic Exchange Type:Topic模式,採用"*" 和 "#" 進行匹配;

The Headers Exchange Type:額。。。。

 

 

rocketMQ 分爲四大部分:

producer集羣/consumer集羣/brocker集羣/nameserver集羣

一張特別經典的圖片:

 

brocker 集羣 採用主從協議:

  • producer只鏈接master,master同步到slave(同步或異步方式);
  • consumer鏈接master和slave,主要在master讀取消息,master宕機或者繁忙到slave讀取消息;
  • namesvr用於保證brocker的集羣關係,狀態等。

 

MQ可以支持把消息持久化:

  • 持久化的方式爲保存文件,文件叫做commitlog(另外維護了一個consumerQueue相當於索引,一個indexfile,用於tt哦那個過key和其他時間查詢條件查詢);
  • 持久化分爲兩種方式,同步刷盤和異步刷盤。

 

死信隊列:

MQ支持消費者重試,重試配置默認爲16次,當16次重試結束後,消息會存放到一個死信隊列中,死信隊列用於存放groupId 級別的消息,會存放三天的消息;

 

待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章