网站首页 > java教程 正文
功能特点
- 消息存储速度非常快速。
- 使用简单方便,目前只支持topic方式。
- 依赖java环境。
说明:目前只在部分项目中使用,欢迎学习交流。
模块架构
说明:集群由多个Group组成一个队列,每个Group由Master和Salve两个Broker组成,整体无中心架构。

部署
1 下载文件解压umq-*.tar.gz到任意目录。
2 配置信息
在conf/config.properties文件中填写相关信息。
mq.host=192.168.1.43 #本机ip mq.port=9000 #端口 mq.replica.host=192.168.7.131 #本机作为备机的主机ip mq.replica.fetch.size=100 #每次备份时同步的数据条数,默认30 mq.replica.fetch.interval=2 #备份同步时间间隔,默认2秒 mq.log.dir=./data #数据存储目录,默认data,不建议修改 mq.data.persistence.interval=2 #数据持久化的时间间隔,默认2秒 mq.enable.zookeeper=true #是否使用zk,集群环境下必须使用 mq.zk.connect=192.168.1.14:2181 #zk地址 mq.zk.username=admin #zk用户名 mq.zk.password=password #zk密码 mq.zk.connectiontimeout.ms=6000 #zk连接超时时间 mq.zk.sessiontimeout.ms=6000 #zk连接session过期时间 mq.zk.data.persistence.interval=6000 #zk数据同步时间,默认6秒 mq.active.broker.url= #支持转发到activemq mq.enable.consumer=false #是否启用consumer
3 启动执行startup.sh,停止执行shutdown.sh,查看运行状态执行status.sh,查看主题信息执行info.sh,清除zk相关信息执行zkclear.sh。
4 目录
umq/conf 配置 umq/data 数据存储 umq/logs 日志 umq/lib 依赖jar
生产者
生产者为单例,必须最少执行一次connect操作,连接成功后不会重复connect。
String cfg = "file:/gitlib/uncode-mq/conf/config.properties";
Producer.getInstance().connect(cfg);
for(int i=0;i<10000;i++){
List<Topic> list = new ArrayList<Topic>();
Topic topic = new Topic();
topic.setTopic("umq");
topic.addContent("umq作者juny=>"+i);
list.add(topic);
Producer.getInstance().send(list);
}
或
Properties config = new Properties();
config.setProperty("mq.port", "9000");
config.setProperty("mq.zk.connect", "192.168.1.14:2181");
config.setProperty("mq.enable.zookeeper", "true");
ServerConfig serverConfig = new ServerConfig(config);
Producer.getInstance().connect(serverConfig);
for(int i=0;i<10000;i++){
List<Topic> list = new ArrayList<Topic>();
Topic topic = new Topic();
topic.setTopic("umq");
topic.addContent("umq作者juny=>"+i);
list.add(topic);
Producer.getInstance().send(list);
}
消费者
1 普通方式
String cfg = "file:/gitlib/uncode-mq/conf/config.properties";
Consumer.runningConsumerRunnable(cfg);
Consumer.addSubscriber(new ConsumerSubscriber(){
//订阅主题
@Override
public List<String> subscribeToTopic() {
List<String> tps = new ArrayList<String>();
tps.add("umq");
return tps;
}
//通知
@Override
public void notify(Topic topic) {
System.err.println("consumer subscriber:"+topic.toString());
}
});
2 与spring集成
@Service
public class MyConsumerSubscriber implements ConsumerSubscriber {
public static final String CFG = "file:/gitlib/uncode-mq/conf/config.properties";
@Autowired
LogService logServiceImpl;
public ExpressRecordConsumerSubscriber() {
//注册订阅者
try {
Consumer.runningConsumerRunnable(CFG);
Consumer.addSubscriber(this);
} catch (ConnectException e) {
e.printStackTrace();
}
}
//订阅主题
@Override
public List<String> subscribeToTopic() {
List<String> tps = new ArrayList<String>();
tps.add("umq");
return tps;
}
@Override
public void notify(Topic topic) {
//处理逻辑
}
}
git地址:https://gitee.com/uncode/uncode-mq
猜你喜欢
- 2024-10-23 阿里蚂蚁金服中间件(Java 4轮面试题含答案):Re...
- 2024-10-23 阿里Java60万年薪(4面真题):线程同步+数据库锁+中间件等
- 2024-10-23 面试分享:中间件RabbitMQ面试专题及Java架构知识点整理!
- 2024-10-23 吐血总结了各个中间件是如何实现持久化的
- 2024-10-23 学习分享之《大型网站系统与Java中间件实践》
- 2024-10-23 Arquillian:针对Java中间件的集成测试和功能性测试平台
- 2024-10-23 java数据库读写分离-数据库中间件DBProxy
- 2024-10-23 java面试中,面试官:如何处理消息中间件(MQ)消息丢失问题?
- 2024-10-23 阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
- 2024-10-23 Java中间件-ehcache(Java中间件错误整理)
欢迎 你 发表评论:
- 11-22win8最低要求配置(win8对电脑配置要求)
- 11-22台式电脑无线网络连接(台式电脑无线网络连接不上怎么解决)
- 11-22windows7自己电脑的激活密钥
- 11-22台式电脑组装图(台式电脑组装图纸)
- 11-22电脑开机后一会就蓝屏(电脑开机后一会就蓝屏是什么原因)
- 11-22改ip地址软件(改ip地址软件免费的有那些)
- 11-22电脑桌面没了怎么恢复(电脑桌面 没了)
- 11-22手机控制电脑远程开机(手机控制电脑远程开机怎么操作)
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)

本文暂时没有评论,来添加一个吧(●'◡'●)