消息中间件metaq
消息中间件metaq安装并注册到zookper集群
项目地址
https://github.com/killme2008/Metamorphosis
Memorphosis是一个消息中间件,它是linkedin开源MQ——kafka的Java版本,针对淘宝内部应用做了定制和优化。Metamorphosis的设计原则
- 消息都是持久的,保存在磁盘
- 吞吐量第一
- 消费状态保存在客户端
- 分布式,生产者、服务器和消费者都可分布
Metamorphosis的部署结构

[root@q tools]# tar xf metaq-server-1.4.6.2.tar.gz
[root@q tools]# cd taobao/
[root@q taobao]# ls
COPYING.txt metamorphosis-server-wrapper README.md [root@q taobao]# cd metamorphosis-server-wrapper/
[root@q metamorphosis-server-wrapper]# ls
bin conf lib provided
其中bin目录包含启动脚本(目前只有linux下的启动脚本),conf下为配置文件,lib下为meta服务器的所有jar包,logs为日志所在目录。
[root@q metamorphosis-server-wrapper]# cd conf/
[root@q conf]# ls
async_slave.properties jettyBroker.properties notifySlave.properties samsa_master.properties timetunnel.properties
gregor_slave.properties notifyadaper sample.server.ini server.ini
[root@q conf]# vim server.ini [system]
brokerId=0
numPartitions=1
serverPort=8123
dashboardHttpPort=8120
unflushThreshold=0
unflushInterval=10000
maxSegmentSize=1073741824
maxTransferSize=1048576
deletePolicy=delete,168
deleteWhen=0 0 6,18 * * ?
flushTxLogAtCommit=1
stat=true ;; Update consumers offsets to current max offsets when consumers offsets are out of range of current broker's messages.
;; It must be false in production.But recommend to be true in development or test.
updateConsumerOffsets=true [zookeeper]
zk.zkConnect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
zk.zkSessionTimeoutMs=30000
zk.zkConnectionTimeoutMs=30000
zk.zkSyncTimeMs=5000 ;; Topics section
[topic=test] [topic=meta-test] [topic=xl] #自定义的消息xl的队列
启动
[root@q conf]# cd ..
[root@q metamorphosis-server-wrapper]# ls
bin conf lib logs provided
[root@q metamorphosis-server-wrapper]# cd bin/
[root@q bin]# sh metaServer.sh start &
查看状态
[root@q bin]# sh metaServer.sh stats
测试
[root@q bin]# ./zkCli.sh -server 127.0.0.1:2181 [zk: 127.0.0.1:2181(CONNECTING) 0] ls /
2017-01-01 19:19:42,232 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x159591602330000, negotiated timeout = 30000
WATCHER:: WatchedEvent state:SyncConnected type:None path:null
[zookeeper, meta] #在此目录生成meta
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /meta
[brokers]
[zk: 127.0.0.1:2181(CONNECTED) 2] ls /meta/brokers
[topics-sub, ids, topics-pub, topics]
[zk: 127.0.0.1:2181(CONNECTED) 3] ls /meta/brokers/topics
[meta-test, test, xl]
[zk: 127.0.0.1:2181(CONNECTED) 4] ls /meta/brokers/ids #brok节点
[0]
[zk: 127.0.0.1:2181(CONNECTED) 5] get /meta/brokers/ids/0
meta://192.168.179.161:8123
cZxid = 0x200000046
ctime = Sun Jan 01 16:44:09 CST 2017
mZxid = 0x200000048
mtime = Sun Jan 01 16:44:09 CST 2017
pZxid = 0x200000049
cversion = 2
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 27
numChildren = 2
[zk: 127.0.0.1:2181(CONNECTED) 6]
部署另外一台
在同一台模拟部署
[root@q tools]# cp -rf taobao/ taobao1
[root@q bin]# pwd
/home/zsq/tools/taobao1/metamorphosis-server-wrapper/bin
[root@q bin]# ls
env.bat env.sh localMetaServer.bat log4j.properties metaServer.bat metaServer.sh tools_log4j.properties
修改脚本metaServer.sh的pid文件
PID_FILE="$PID_DIR/.run1.pid"
修改env.sh,默认是9123端口
export JMX_PORT=9124
启动
[root@q bin]# sh metaServer.sh start $
[zk: 127.0.0.1:2181(CONNECTED) 12] ls /meta/brokers/ids #有两个broker就表面集群部署成功
[0, 1] [zk: 127.0.0.1:2181(CONNECTED) 18] get /meta/brokers/ids/1
meta://192.168.179.161:8124
cZxid = 0x200000092
ctime = Sun Jan 01 21:05:26 CST 2017
mZxid = 0x200000094
mtime = Sun Jan 01 21:05:26 CST 2017
pZxid = 0x200000095
cversion = 2
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 27
numChildren = 2
[zk: 127.0.0.1:2181(CONNECTED) 19]
消息中间件metaq的配置启动及相关维护操作

消息中间件metaq的更多相关文章
- 消息中间件MetaQ高性能原因分析-转自阿里中间件
简介 MetaQ是一款高性能的消息中间件,经过几年的发展,已经非常成熟稳定,历经多年双11的零点峰值压测,表现堪称完美. MetaQ当前最新最稳定的稳本是3.x系统,MetaQ 3.x重新设计和实现, ...
- [转]分布式消息中间件 MetaQ 作者庄晓丹专访
MetaQ(全称Metamorphosis)是一个高性能.高可用.可扩展的分布式消息中间件,思路起源于LinkedIn的Kafka,但并不是Kafka的一个Copy.MetaQ具有消息存储顺序写.吞吐 ...
- MetaQ安装部署文档
一.MetaQ安装部署情况: 地点 IP Broker ID Master/Slave Slave ID:Group 合肥 192.168.52.23 Slave 1:meta-slave-group ...
- 【结果很简单,过程很艰辛】记阿里云Ons消息队列服务.NET接口填坑过程
Maybe 这个问题很简单,因为解决方法是非常简单,但填坑过程会把人逼疯,在阿里云ONS工作人员.同事和朋友的协助下,经过一天的调试和瞎捣鼓,终于解决了这个坑,把问题记下来,也许更多人在碰到类似问题的 ...
- java CMS gc解析
转载: http://www.blogjava.net/killme2008/archive/2009/09/22/295931.html CMS,全称Concurrent Low Pause ...
- 阿里中间件RocketMQ
阿里RocketMQ是怎样孵化成Apache顶级项目的? RocketMQ 迈入50万TPS消息俱乐部 Apache RocketMQ背后的设计思路与最佳实践 专访RocketMQ联合创始人:项目思路 ...
- 阿里中间件——消息中间件Notify和MetaQ
3.1.Notify Notify是淘宝自主研发的一套消息服务引擎,是支撑双11最为核心的系统之一,在淘宝和支付宝的核心交易场景中都有大量使用.消息系统的核心作用就是三点:解耦,异步和并行.下面让我以 ...
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. ...
- 消息中间件Notify和MetaQ-阿里中间件
3.1.Notify Notify是淘宝自主研发的一套消息服务引擎,是支撑双11最为核心的系统之一,在淘宝和支付宝的核心交易场景中都有大量使用.消息系统的核心作用就是三点:解耦,异步和并行.下面让我以 ...
随机推荐
- python学习之由
2019python之年: 2019是个挫折之年,但又是幸运之年,这一年创业遭遇滑铁卢,几与破产,充满着迷茫,路在何方?? 开始接触python是在微信朋友圈,结缘于广告,觉得很有意思,但一直没有深入 ...
- 解决浏览器看不到Flash文档(尤其某慕课)
最近遇到很多朋友说浏览器看不到网课资源的文档等等,就顺手写一篇说一下情况 为什么会文档空白 某课网站上面的文档是用flash进行展示的,同时flash被很多浏览器逐步抛弃(快凉了,都是H5了) fla ...
- npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法
错误原因在于由于文件 node_modules 太大,在项目上传时有些人会删掉 导致我们下载的项目中缺少这个文件 在尝试把自己项目的 node_modules文件夹直接复制过去之后发现问题还没有得到解 ...
- 1058 A+B in Hogwarts (20分)(水)
If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- a ...
- Java调用ARM模板执行Azure Rest建立VM过程
Azure Resource Manager 提供一致的管理层,用于管理通过 Azure PowerShell.Azure CLI.Azure 门户.REST API 和开发工具执行的任务,所有工具使 ...
- shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上
shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上 naonao_127关注2人评论19401人阅读2012-06-08 11:26:16 生产环境下脚本自动备份脚本是 ...
- Thinkphp getLastSql函数用法
如何判断一个更新操作是否成功: $Model = D('Blog'); $data['id'] = 10; $data['name'] = 'update name'; $result = $Mode ...
- adb工作常用命令
adb devices 查看手机名 adb shell链接手机 dumpsys window windows |grep -i current 打开软件,查看软件入口,和包名,白色为包名,红框为包入口 ...
- vector数组的相关知识
Vector 类实现了一个动态数组.和 ArrayList 很相似,但是两者是不同的: Vector 是同步访问的. Vector 包含了许多传统的方法,这些方法不属于集合框架. Vector 主要用 ...
- node+mysql数据库连接(入门)
node+mysql的数据库操作: 1 //引入mysql var mysql = require('mysql'); //进行数据库连接设置 var connection = mysql.creat ...