RedMQ
基于redis的消息隊列
優(yōu)點:
消息不丟失
消息不重復(fù)
分布式緩存鎖
在線安全關(guān)閉消費隊列(防消息丟失)
在線查看未處理消息數(shù)
在線查看消費線程數(shù)
在線注冊topic和group
提供restfulAPI
實時監(jiān)控/報警
缺點:
重度依賴redis
Example
首先需要在線或者調(diào)用api注冊topic和group晌区,未注冊的topic和group無法發(fā)送和接收消息
支持P2P,Publish/Subscribe
發(fā)送消息
String topicName = "testTopic";
//groupName為空時通贞,消息發(fā)送給topic下注冊的所有消費者分組朗若,
//groupName不為空,消息只發(fā)送給對應(yīng)的group分組
String groupName = "testGroup";
DefaultProducer defaultProducer = new DefaultProducer(topicName, groupName);
for(int i=0;i<100000;i++) {
String message = "i am message " + i;
defaultProducer.sendMessage(message);
}
處理消息
//同一個分組無法重復(fù)消息同一條消息,依賴redis的list實現(xiàn)
String topicName = "testTopic";
String groupName = "testGroup";
//可控制消費者線程數(shù)昌罩,默認(rèn)單線程處理消息哭懈,可分布式部署多個節(jié)點處理消息
DefaultConsumer defaultConsumer = new DefaultConsumer(topicName, groupName, 2);
defaultConsumer.setMessageLinser(new MessageLinser() {
@Override
public MessageStatus consumeMessage(String message) {
System.out.println(message);
return MessageStatus.SUCCESS;
}
});
defaultConsumer.start();
接口文檔地址
http://localhost:8000/doc.html
在線管理地址
查看消息隊列,安全關(guān)閉消費者分組
在線查看茎用、注冊消息主題
在線查看遣总、注冊消費者分組
github地址:https://github.com/will-xlz/RedMQ