• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

uncode-mq: 基于netty的轻量级java消息中间件。

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

uncode-mq

开源软件地址:

https://gitee.com/uncode/uncode-mq

开源软件介绍:

uncode-mq

基于netty的轻量级java消息中间件。


功能特点

  1. 消息存储速度非常快速。
  2. 使用简单方便,目前只支持topic方式。
  3. 依赖java环境。

说明:目前只在部分项目中使用,欢迎学习交流。


模块架构

umq

说明:集群由多个Group组成一个队列,每个Group由Master和Salve两个Broker组成,整体无中心架构。


部署

1 下载文件解压umq-*.tar.gz到任意目录。

2 配置信息

在conf/config.properties文件中填写相关信息。

mq.host=192.168.1.43 #本机ipmq.port=9000 #端口mq.replica.host=192.168.7.131 #本机作为备机的主机ipmq.replica.fetch.size=100 #每次备份时同步的数据条数,默认30mq.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= #支持转发到activemqmq.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集成

@Servicepublic 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) {		//处理逻辑	}	}

关于

作者:冶卫军([email protected],微信:yeweijun)

技术支持QQ群:47306892

Copyright 2020 www.uncode.cn


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap