一个简单的开源消息中间件 FolkMQ v1.4.2 发布

功能简表

角色 功能
生产者(客户端) 发布消息、定时消息(或叫延时)、顺序消息、可过期消息、事务消息。支持 Qos0、Qos1
消费者(客户端) 订阅、取消订阅。消费-ACK(自动、手动)
服务端 发布-Confirm、订阅-Confirm、取消订阅-Confirm、派发-Retry、派发-Delayed

本次更新

  • 添加 自定义 tid(key) 支持(之前自动生成)
  • 添加 PackagingLoopImpl 新的构造函数
  • 添加 外部配置文件加载支持(./data/app.yml
  • 添加 消息二进制数据支持(可以方便不同的消息数据序列化)
  • 添加 顺序消息分区支持(在集群下才有效)
  • 优化 顺序消息没有消费者时 server 端 cpu 过高的问题
  • 优化 企业版授权控制
  • 优化 Server 预关闭支持
  • 优化 顺序消息的强制派发处理
  • sokcet.d 升为 2.4.10

面向简单编程

1) 启动服务

复制代码
docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.4.2

2) 编写程序

  • 引入一个小依赖
xml 复制代码
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>folkmq-transport-netty</artifactId>
    <version>1.4.2</version>
</dependency>
  • 写程序喽
java 复制代码
public class ClientDemo {
    public static void main(String[] args) throws Exception {
        //创建客户端,并连接
        MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18602")
                                .nameAs("demoapp")
                                .connect();

        //订阅主题
        client.subscribe("demo.topic", message -> {
            System.out.println(message);
        });

        //发布消息
        client.publish("demo.topic", new MqMessage("helloworld!"));
    }
}

代码仓库

官网

相关推荐
程序员天天困2 分钟前
后端视角看 EventBus:发布订阅总线的原理、场景与用法
java·后端
要开心吖ZSH10 分钟前
AI医疗分诊与健康咨询助手agent开发——(4-2)从零到一:我给AI医疗分诊助手加了个“知识库大脑“,终于搞懂了RAG是什么
java·docker·agent·医疗·rag
怎么比啊都是大神2 小时前
关于==null、isEmpty()和StrUtil.isBlank()
java
唐青枫2 小时前
Java Neo4j 实战指南:从图模型、Cypher 到 Spring Boot 关系查询
java
观远数据2 小时前
从离线开发到实时同步:DataFlow如何支撑企业级数据治理闭环
java·windows·microsoft·excel
Listen·Rain2 小时前
Vue3中组件间通信详解
前端·javascript·vue.js
Listen·Rain2 小时前
Vue3中customRef详解
前端·javascript·vue.js
香芋芋圆2 小时前
国内常用坐标系全解析与WebGIS框架实战指南(Cesium/Mapbox/Leaflet避坑手册)
前端·javascript
sugar__salt2 小时前
Document 切割:RAG 知识库数据预处理实战
javascript·langchain·embedding·js·rag·cheerio
小粉粉hhh3 小时前
React(三)——Redux
前端·javascript·react.js