FolkMQ,是一个内存型消息中间件。它采用了类似 Redis 的策略(内存运行 + 快照持久化)
功能
- 发布消息、发布定时消息(支持 Qos0、Qos1)
- 订阅、取消订阅
- ACK,自动重试、有策略的延时(可做分布式事务应用)
主要特点
- 快、是真的快(大约 100_000 TPS)。有点像 Redis 之于 MySql。
//使用 MacBook pro 2020 + JDK8 本机测试,单客户端发与收(跑分难免有波动,我是选了好看点的)
Helloworld
1、启动服务
docker run -p 18602:18602 -p 8602:8602 noearorg/folkmq-server:1.0.8
2、编写客户端代码
- maven import
<dependencies>
<!-- 可选包:java-tcp(90kb左右), smartsocket(260Kb左右), netty(2.5Mb左右) -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>folkmq-transport-java-tcp</artifactId>
<version>1.0.8</version>
</dependency>
</dependencies>
- client(consumer + producer) use
public class ClientDemo1 {
public static void main(String[] args) throws Exception {
//客户端(鉴权为可选。服务端,不添加则不鉴权)
MqClient client = FolkMQ.createClient("folkmq://127.0.0.1:18602?ak=folkmq&sk=YapLHTx19RlsEE16")
.connect();
//订阅(consumer = ip or cluster name)
client.subscribe("demo", "demoapp", message -> {
System.out.println(message);
});
//发布
client.publish("demo", "helloworld!");
}
}