简介
- 采用 “多路复用” + “内存运行” + “快照持久化” + “Broker 集群模式”(可选)+
- 基于 Socket.D 网络应用协议 开发。全新设计,自主架构!
角色 | 功能 |
---|---|
生产端 | 发布消息(Qos0、Qos1)、发布定时消息(Qos0、Qos1)、发布重试 |
消费端 | 订阅、取消订阅 |
消费端 | 消费-ACK(自动、手动) |
服务端 | 发布-Confirm、订阅-Confirm、取消订阅-Confirm、派发-Retry、派发-Delayed |
服务端 | 内存运行、快照持久化(自动、停机、手动) |
服务端 | 集群热扩展 |
特点
- 高吞吐量、低延迟
FolkMQ 纯内存运行,每秒能处理几十万条消息,最低延迟不到1毫秒。
- 可扩展性
FolkMQ Broker 集群支持 folkmq-server 节点热扩展。流量高时随时加,流量低时可减
- 持久性、可靠性
消息被快照持久化(类似于 redis)到本地磁盘,并且支持数据备份防止数据丢失
- 快(单机版,180K TPS)。有点像 Redis 之于 MySql。
//使用 MacBook pro 2020 + JDK8 本机测试,单客户端发与收(跑分难免有波动,我是选了好看点的)
本次更新
- 添加 集群热扩展机制(重要新特性)
- 添加 folkmq-server 控制台消息手动发布功能
- 添加 folkmq-broker 控制台消息手动发布功能
- 添加 mq.event.join 新指令(用于加入集群时,同步订阅)
- 添加 client 批量订阅支持(连接前的订阅,在连接时批量提交)
- 添加 client::unpublish 取消发布接口中
- 添加 client::unpublishAsync 取消发布异步接口
- 调整 各端打开时的日志打印
- sokcet.d 升为 2.1.13
代码仓库
- https://gitee.com/noear/folkmq
- https://github.com/noear/folkmq