一.MetaQ安装部署情况:
地点 | IP | Broker ID | Master/Slave | Slave ID:Group |
合肥 | 192.168.52.23 | 1 | Slave | 1:meta-slave-group-hf |
北京 | 192.168.51.33 | 1 | Master | / |
广州 | 192.168.70.157 | 1 | Slave | 2:meta-slave-group-gz |
二.MetaQ安装
1. 前提
已有安装了ZooKeeper的机器,且三地的MetaQ都可以访问到,即三个IP都可以ping通安装了ZooKeeper的机器。ZooKeeper是用来注册MetaQ的broker、topic、pub、sub信息,用来做负载均衡的,起到协调作用。
我在上述三地都安装了ZooKeeper,目前使用的是北京192.168.51.33:2181作为ZooKeeper服务器。
Zookeeper使用ubuntu的deb包的dpkg方式安装。
启动ZooKeeper:
Service zookeeper start
2. 下载MetaQserver 1.4.6.2
下载链接:,下载metaq-server-1.4.6.2.tar.gz复制到三地的/usr/lib目录下。
3. 部署
解压tar zxvfmetaq-server-1.4.6.2.tar.gz,将解压出来的taobao/metamorphosis-server-wrapper文件夹移动到/usr/lib下,并重命名为metaq。
Metaq的文件结构:
l bin: metaq的命令文件夹./meteServer.sh执行metaq命令
l conf:metaq的配置文件夹,async_slave.properties异步复制配置,server.ini配置broker,samsa_master.properties同步复制配置。
l lib:metaq依赖的jar包
l provided: 开发者自己开发的程序
4. master/slave集群配置
使用异步复制架构。
修改北京192.168.51.33机器的/usr/lib/metaq/conf/server.ini文件为:
[system]
;; brokerId mustbe unique, the slave should be the same with master
brokerId=1
;; topicpartitions default set to 1, I changed it to 16, it should not be too large
numPartitions=16
serverPort=8123
dashboardHttpPort=8120
unflushThreshold=0
unflushInterval=10000
maxSegmentSize=1073741824
;default 1048576
maxTransferSize=104857600
deletePolicy=delete,168
deleteWhen=0 0 6,18 * * ?
flushTxLogAtCommit=1
stat=true
putProcessThreadCount=100
;; Update consumers offsets tocurrent max offsets when consumers offsets are out of range of current broker'smessages.
;; It must be false inproduction.But recommend to be true in development or test.
updateConsumerOffsets=true
;; your zookeeperserver
[zookeeper]
zk.zkConnect=192.168.51.33:2181
zk.zkSessionTimeoutMs=30000
zk.zkConnectionTimeoutMs=30000
zk.zkSyncTimeMs=5000
;; Topics section
[topic=test]
[topic=meta-test]
;; add your topicshere before use it
[topic=oct29]
因为使用master/slave模式,因此要时刻保持合肥192.168.52.23和广州192.168.70.157的server.ini文件保持和北京192.168.51.33相同,即使添加了新的topic,也要手动向server.ini中注册。
修改三地的conf/async_slave.properties,北京的保持不变,合肥的修改为
#slave编号,大于等于0表示作为slave启动,同一个master下的slave编号应该设不同值.
slaveId=1
#作为slave启动时向master订阅消息的group,如果没配置则默认为meta-slave-group
#不同的slaveId请使用不同的group
slaveGroup=meta-slave-group
#slave数据同步的最大延时,单位毫秒
slaveMaxDelayInMills=500
#是否自动从master同步server.ini, 1.4.2新增选项
#第一次仍然需要自己拷贝server.ini,后续可以通过设置此选项为true来自动同步
autoSyncMasterConfig=true
广州的conf/async_slave.properties修改为:
#slave
编号
,
大于等于
0
表示作为
slave
启动
,
同一个
master
下的
slave
编号应该设不同值
.
slaveId=2
#
作为
slave
启动时向
master
订阅消息的
group,
如果没配置则默认为
meta-slave-group
#
不同的
slaveId
请使用不同的
group
slaveGroup=meta-slave-group-gz
#slave
数据同步的最大延时
,
单位毫秒
slaveMaxDelayInMills=500
#
是否自动从
master
同步
server.ini, 1.4.2
新增选项
#
第一次仍然需要自己拷贝
server.ini
,后续可以通过设置此选项为
true
来自动同步
autoSyncMasterConfig=true
5. 启动MetaQ集群
首先启动两个slave:
合肥和广州将目录切换到/usr/lib/metaq/bin下,使用slave模式启动MetaQ:
./metaServer.sh start slave &
北京启动master:
./metaServer.sh start &
三.问题
1. Topic的默认分区到底去多少好?即server.ini中numPartitions的配置,目前为16,当使用1024的时候很多会导致磁盘效率太低,message发送失败几率升高。
2. 异步复制的slave将参与消费者的消费活动,消息消费者可以从slave中获取消息并消费,消费者会随机从master和slaves中挑选一台作为消费broker。如何指定consumer从slave中消费message而不跑去消费master的呢?
3. 可以添加一个topic而不重启MetaQ吗?
相关推荐
《Metamorphosis (MetaQ) 服务端1.4.3版本详解及客户端使用》 Metamorphosis,简称MetaQ,是一款高效、稳定、可扩展的消息队列系统,由阿里巴巴开发并开源,主要用于解决分布式环境下的异步处理、解耦以及数据传输...
Metaq 是一种高性能、高可用的消息中间件,其设计灵感来源于 Kafka,但并不严格遵循任何特定的规范,如 JMS(Java Message Service)或 CORBA Notification 规范。Metaq 提供了丰富的特性来解决 Messaging System 中...
在大数据处理领域,MetaQ和Spark是两个非常关键的组件。MetaQ是腾讯开源的一款分布式消息中间件,常用于实时数据处理系统中的消息传递。而Spark则是一个强大的、通用的并行计算框架,专为大数据分析设计,尤其擅长...
MetaQ Server 1.4.6.2版本是这个中间件的一个特定发行版,包含了服务端和客户端的组件,以及相关的Javadoc文档。下面我们将详细探讨MetaQ的核心特性、工作原理、客户端和服务端的使用,以及Javadoc文档的重要性。 *...
3. 分布式:MetaQ采用分布式集群部署,可以动态扩展节点以应对不断增长的业务量,具备良好的水平扩展能力。 4. 消息持久化:支持消息持久化到磁盘,即使服务器重启,也不会丢失未消费的消息,确保数据安全。 5. ...
《Metaq在JDK 7下的异常及其解决策略》 Metaq是一款高性能的消息中间件,广泛应用于分布式系统中,提供高效、稳定的消息传递服务。然而,在JDK 7环境下,Metaq可能会遇到一些运行异常,其中最常见的就是与物理文件...
- **部署**:Metaq环境通常预装在日常环境中,若需自建,可参考服务器部署指南。 - **角色**:消息中间件的角色分为消息生产者和消息消费者。生产者创建并发送消息至Metaq服务器,服务器负责消息的持久化,消费者...
3. **安装环境**:MetaQ 的运行需要 Java 运行环境(JRE),因此在安装前需确保系统已安装 JRE 或 JDK。此外,由于 MetaQ 使用 ZooKeeper,所以也需要安装并配置好 ZooKeeper 服务。 4. **安装步骤**: - 下载 ...
《MetaQ服务器1.4.6.2版本详解》 MetaQ是阿里巴巴开源的一款分布式消息中间件,主要用于解决大规模分布式系统中的消息传递问题。在1.4.6.2这个版本中,它继续保持着与原版一致的核心特性,提供高效、稳定、可扩展的...
Metamorphosis是淘宝开源的一个Java消息中间件,他类似apache-kafka,但不是一个简单的山寨拷贝,而是做了很多改进和优化,项目的主页在淘蝌蚪上。服务端、客户端、javadoc都包含在内。
MetaQ是一款分布式消息服务中间件,其核心功能基于发布-订阅模型。在这一模型中,发布者(Producer)将消息发布到MetaQ,MetaQ会储存这些消息,而订阅者(Consumer)则通过pull方式来消费这些消息。具体而言,消费者...
阿里消息中间件MetaQ学习Demo
【RocketMQ快速入门文档】 RocketMQ是一款由阿里巴巴开源并捐赠给Apache基金会的分布式消息中间件,源自阿里的MetaQ项目,具有高性能、高可用、低延迟等特性,尤其在处理大规模消息流转方面表现出色。RocketMQ支持...
1. **RocketMQ简介**:RocketMQ是由阿里巴巴开源的一款高可用、高性能的消息中间件,它最初是基于Metaq发展而来,经过不断的优化和迭代,现已成为Apache顶级项目。RocketMQ的设计目标是提供低延迟、高吞吐量以及强大...
3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5《zookeeper统一配置》 6、storm项目-流数据监控系列6《最新代码树及详解》。希望能对大家有所...
kafka 的 wiki 是徆丌错的学习文档: https://cwiki.apache.org/confluence/display/KAFKA/Index 接下来就是一系列文章,文章都是循序渐迕的方式带你了览 kafka: 关亍 kafka 的基本知识,分布式的基础:《分布式消息...
该文档为storm模拟项目系列文档之一,是MetaQ与storm接口的说明文档,主要介绍了如何集成MetaQ到项目代码中。软件(阿里),其对应的许多技术文档还是比较容易看的,并且Github提供了许多的应用实例,所以使用MetaQ...
Window搭建部署RocketMQ步骤详解是指在Windows操作系统上安装和配置RocketMQ的详细步骤。RocketMQ是一个由阿里巴巴开源的消息中间件,脱胎自阿里巴巴的MetaQ,在设计上借鉴了Kafka。下面将详细介绍Window搭建部署...