博客 / 詳情

返回

XXL-MQ v1.3.0 | 分佈式消息隊列

Release Notes

  • 1、【增強】消費者分組屬性 "group" 支持為空,為空時自動賦值UUID,方便實現多分組廣播消費;
  • 2、【增強】海量數據堆積:消息數據存儲在DB中,原生兼容支持 "MySQL、TIDB" 兩種存儲方式,前者支持千萬級消息堆積,後者支持百億級別消息堆積(TIDB理論上無上限);
  • 3、【優化】消費者批量註冊發現,提高註冊發現性能;
  • 4、【優化】消息流轉日誌格式優化,提升日誌可讀性;
  • 5、【優化】升級xxl-rpc、xxl-registry至較新版本,Broker註冊發現服務做適配性優化;

簡介

XXL-MQ是一款輕量級分佈式消息隊列,擁有 "水平擴展、高可用、海量數據堆積、單機TPS過10萬、毫秒級投遞" 等特性,
支持 "併發消息、串行消息、廣播消息、延遲消息、事務消費、失敗重試、超時控制" 等消息特性。現已開放源代碼,開箱即用。

  • 中文文檔
  • Github地址

img_03.png

特性

  • 1、簡單易用: 一行代碼即可發佈一條消息; 一行註解即可訂閲一個消息主題;
  • 2、輕量級: 部署簡單,不依賴第三方服務,一分鐘上手;
  • 3、水平擴展:消息中心支持無限水平擴展,這裏的水平擴展包括兩方面:消息生產能力、消息消費能力;通過集羣擴展線性提升消息吞吐能力;
  • 4、高可用:消息中心能夠忍受部分示例失效,不影響整個集羣的可用性。通過內置註冊中心可以實現秒級摘除失效節點,消息服務動態轉移;
  • 5、消息持久化:全部消息持久化存儲,消息中心支持通過配置選擇是否清理過期消息。
  • 6、強數據安全:消息數據存儲在DB中,可事務保障數據安全,防止消息數據丟失;
  • 7、海量數據堆積:消息數據存儲在DB中,原生兼容支持 "MySQL、TIDB" 兩種存儲方式,前者支持千萬級消息堆積,後者支持百億級別消息堆積(TIDB理論上無上限);
  • 8、單機TPS過10W:單機TPS受限於DB存儲方式,選型 "MySQL" 時單機TPS過萬,選型 "TIDB" 時單機TPS過10萬;
  • 9、毫秒級投遞延遲:消息中心與客户端通過RPC的方式進行消息通訊,毫秒級延時;
  • 10、多種消息模式:

    • 並行消息:消息平均分配在該主題在線消費者,分片方式並行消費;適用於吞吐量較大的消息場景,如郵件發送、短信發送等業務邏輯
    • 串行消息:消息固定分配給該主題在線消費者中其中一個,FIFO方式串行消費;適用於嚴格限制併發的消息場景,如秒殺、搶單等排隊業務邏輯;
    • 廣播消息:消息將會廣播發送給該主題在線消費者分組,全部分組都會消費該消息,但是一個分組下只會消費一次;適用於廣播場景,如廣播更新緩存等
  • 11、延時消息: 支持設置消息的延遲生效時間, 到達設置的生效時間時該消息才會被消費;適用於延時消費場景,如訂單超時取消等;
  • 12、事務消費: 消費者開啓事務開關後,消息事務性保證只會成功執行一次;
  • 13、失敗重試: 支持設置消息的重試次數, 在消息執行失敗後將會按照設置的值進行消息重試執行,直至重試次數耗盡或者執行成功;
  • 14、超時控制: 支持自定義消息超時時間,消息消費超時將會主動中斷;
  • 15、消息可見: 系統中每一條消息可通過Web界面在線查看,甚至支持編輯消息內容和消息狀態;
  • 16、消息可追蹤: 支持追蹤每一條消息的執行路徑, 便於排查業務問題;
  • 17、消息失敗告警:支持以Topic粒度監控消息,存在失敗消息時主動推送告警郵件;默認提供郵件方式失敗告警,同時預留擴展接口,可方面的擴展短信、釘釘等告警方式;
  • 18、容器化:提供官方docker鏡像,並實時更新推送dockerhub,進一步實現產品開箱即用;
  • 19、訪問令牌(accessToken):為提升系統安全性,消息中心和客户端進行安全性校驗,雙方AccessToken匹配才允許通訊;
user avatar u_15699099 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.