FolkMQ "單線程"消息中間件 v1.0.32 發佈

簡介

  • 採用 “單線程” + “多路複用” + "內存運行" + "快照持久化" + "Broker 集羣模式"(可選)
  • 基於 Socket.D 網絡應用協議 開發。全新設計,自主架構!
角色 功能
生產端 發佈消息(Qos0、Qos1)、定時消息(Qos0、Qos1)、可過期消息(Qos0、Qos1)
消費端 訂閱、取消訂閱
消費端 消費-ACK(自動、手動)
服務端 發佈-Confirm、訂閱-Confirm、取消訂閱-Confirm、派發-Retry、派發-Delayed
服務端 內存運行、快照持久化(自動、停機、手動)
服務端 集羣熱擴展、集羣高可用

特點

  • 高吞吐量、低延遲

FolkMQ 純內存運行,每秒能處理幾十萬條消息,最低延遲不到1毫秒。

  • 可擴展性

FolkMQ Broker 集羣支持 folkmq-server 節點熱擴展。流量高時隨時加,流量低時可減

  • 持久性、可靠性

消息被快照持久化(類似於 redis)到本地磁盤,並且支持數據備份防止數據丟失

  • 高可用

集羣內任何節點壞掉只要還有“一個”同類節點,仍可提供服務

  • 快(單機版,180K TPS)。

有點像 Redis 之於 MySql。

  • 支持絕對順序消息

通過配置實現

本次更新

  • 服務端的消息主處理,改爲單線程模式

向 redis 學習。消息的主處理,基本在內存裏進行。所以改成單線程後,性能沒啥變化。

  • 添加 單機模式下絕對有序支持
//消息絕對有序配置支持(發送有序,接收有序)
MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18601?ak=ak1&sk=sk1",
                "folkmq://127.0.0.1:18602?ak=ak1&sk=sk1")
        .config(c->c.sequenceMode(true).coreThreads(1).maxThreads(1))
        .connect();
  • 添加 集羣安全停止支持。實現一端停止,另一端完全無感知(不異常,不卡頓)

新的高可用演示視頻:https://www.bilibili.com/video/BV1Ha4y1R73b/

  • 添加 管理接口支持
//管理接口,一般用於用戶自己開發管理界面,通過接口管理 FolkMQ
String json = client.call(MqApis.MQ_QUEUE_VIEW_MESSAGE, token, "demo","demoApp").get();

代碼倉庫

官網

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