FolkMQ 作个简单的消息中间件(最简单的那种), v1.3.1 发布

功能简介

角色 功能
生产端(或发起端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。发送消息(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):

java 复制代码
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();

代码仓库

官网

相关推荐
码农爱java12 天前
Kafka 之事务消息
spring boot·微服务·kafka·mq·消息中间件·事务消息
码农爱java15 天前
Kafka 之消息并发消费
spring boot·微服务·kafka·mq·消息中间件·并发消费
码农爱java17 天前
Kafka 之顺序消息
spring boot·分布式·微服务·kafka·mq·消息中间件·顺序消息
码农爱java20 天前
Kafka 之消息广播消费
spring boot·微服务·kafka·mq·消息中间件·广播消息
zhuweisky1 个月前
实现信创Linux麦克风摄像头RTMP推流(源码,银河麒麟、统信UOS)
rtmp推流·信创国产化·linux推流·推流麦克风·推流摄像头·信创推流
极客先躯1 个月前
中间件有哪些分类?
中间件·消息中间件·缓存中间件·数据库中间件·网络中间件·安全中间件·事务处理中间件
huisheng_qaq1 个月前
【redis-06】redis的stream流实现消息中间件
redis·kafka·消息中间件·发布订阅·redis的stream·写热点分散
无理 Java2 个月前
【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)
java·分布式·后端·rabbitmq·多线程·mq·消息中间件
huisheng_qaq2 个月前
【kafka-01】kafka安装和基本核心概念
大数据·分布式·kafka·消息队列·消息中间件
zouhuu3 个月前
一键运行RocketMQ5.3和Dashboard
java·rocketmq·消息中间件