功能簡介
角色 | 功能 |
---|---|
生產端(或發起端) | 發佈消息、定時消息(或叫延時)、順序消息、可過期消息、事務消息。發送消息(rpc) 支持 Qos0、Qos1 |
消費端(或接收端) | 訂閱、取消訂閱。消費-ACK(自動、手動)。監聽(rpc) |
服務端 | 發佈-Confirm、訂閱-Confirm、取消訂閱-Confirm、派發-Retry、派發-Delayed |
服務端 | 單線程、內存運行、快照持久化(自動、停機、手動)、Broker 模式集羣、集羣熱擴展 |
中間件特點
- 高吞吐量、低延遲
集羣模式每秒能處理百萬消息,最低延遲不到1毫秒。
- 可擴展性
集羣模式支持服務節點熱擴展。流量高時隨時加,流量低時可減。視頻:
-
持久性、可靠性
消息被快照持久化(類似於 redis)到本地磁盤,並且支持數據備份防止數據丟失
- 可集羣、高可用
可單機,可集羣。集羣內任何節點壞掉只要還有“一個”同類節點,仍可提供服務。視頻:
本次更新
- 新增 javascript 語言客戶端實現
- 調整 docker 基礎鏡像改爲:adoptopenjdk/openjdk11-openj9 (內存可省一半)
- 調整 folkmq-broker 更名爲:folkmq-server-broker (相互兼容,體驗不變)
- 添加 folkmq-server 對 ws 輸傳協議的支持
- 添加 rpc 異常傳導機制
- 完善 順序消息的消費邏輯(改爲串行消費),更適合數據庫有序同步之類的場景
- 完善 許可證本地處理機制(基於rsa簽名機制)
啓動服務:
docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.3.1
新功能示例(for Js or Node.js Demo):
const {FolkMQ} = require("@noear/folkmq");
async function main() {
//創建客戶端,並連接
const client = await FolkMQ.createClient("folkmq:ws://127.0.0.1:18602")
.nameAs("demoapp")
.connect();
//訂閱主題,並指定加入的消費者分組
client.subscribe("demo", null, true, message => {
console.log(message);
});
//發佈消息
client.publish("demo", FolkMQ.newMqMessage("helloworld!"));
}
main();