一、简介

     METAQ(全称Metamorphosis)是一款完全的队列模型消息中间件,服务器使用Jave语言编写,可在多种软硬件平台上部署;客户端支持Java、C++编程语言;单台服务器可支持1万以上个消息队列,通过扩容服务器,队列数几乎可以任意横向扩展;每个队列都是持久化、长度无限(取决于磁盘空间大小)、并可从队列任意位置开始消费;

MetaQ是一款分布式、队列模型的消息中间件,MetaQ具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景。基于发布订阅模式,有Push和Pull两种消费方式,支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询

搭建METAQ消息中间件_第1张图片

相关名称解释:

1、Topic---消息的主题:由用户定义并在服务端配置;producer发送消息到某个topic下,consumer从某个topic下消费信息;

2、Offset---消息在broker上的每个分区都是组织成一个文件列表,消费者拉取数据需要知道数据在文件中偏移量(offset),Offset是绝对偏移量,服务器会将offset转化为具体文件的相对偏移量;

3、Broker---就是meta的服务端或服务器,在消息中间件也通称为broker;

4、分区(partition)---同一个topic下面分为多个分区;

配置文件相关参数:

zk.zkEnable=true  ---是否注册到zk,默认true

zk.zkConnect=localhost:2180   ---zk的服务器列表

zk.zkSessionTimeoutMs=30000   ---zk心跳超时,单位毫秒,默认30秒

zk.zkConnectionTimeoutMs=30000  ---zk连接超时时间,单位毫秒,默认30秒

brokerId   ---服务器ID,必须是集群内唯一,必须为整数0-1024之间

serverPort   ---服务器端口

hostName   ---默认将取本机IP,多机网卡需要指明

dataLogPath   ----日志数据文件路径,默认跟dataPath一样

dataPath    ---于指定默认的数据存储路径

deletePolicy=delete,168   ---数据删除策略,默认超过7天删除,默认单位小时

deleteWhen:    ---何时执行删除策略的cron表达式,默认0 0 6,18 * *?

flushTxLogAtCommit=1   ---事务日志的同步设置

unflushThreshold     ---每个多少条消息做一次磁盘sync,强制将更改的数据刷入磁盘;

unflushInterval    ---间隔多少毫秒定期做一次磁盘sync,默认10秒

搭建METAQ消息中间件_第2张图片



二、搭建过程

系统环境:CentOS Linux release 7.6.1810 (Core)

1、jdk环境

1.png

2、搭建zookeeper(伪集群)

1)解压

tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/

2)创建三个节点,复制文件(文件夹)

# mkdir -p zk1 zk2 zk3

cp -r zookeeper-3.4.14 zk1/

3)配置文件(其他两个节点类似)

cd zk1/zookeeper-3.4.14/

# mkdir dataDir dataLogDir

#创建标识(三个节点分别1,2,3)

# cd dataDir

vim myid

1

##修改配置文件

# mv conf/zoo_sample.cfg conf/zoo.cfg

# vim conf/zoo.cfg

搭建METAQ消息中间件_第3张图片

其他两个节点拷贝过去即可(注意修改标识)##修改相关配置文件

# cp -rf zk1/zookeeper-3.4.14 zk2/

# cp -rf zk1/zookeeper-3.4.14 zk3/

4)启动服务

# zk1/zookeeper-3.4.14/bin/zkServer.sh start

# zk2/zookeeper-3.4.14/bin/zkServer.sh start

# zk3/zookeeper-3.4.14/bin/zkServer.sh start

搭建METAQ消息中间件_第4张图片

# netstat -tnlp | grep -E '2181|2182|2183'

4.png

测试连接登录即可:

# zk1/zookeeper-3.4.14/bin/zkCli.sh -server 127.0.0.1:2181

5.png

3、搭建metaq环境

1)解压文件

# tar -zxvf metaq-server-1.4.6.2.tar.gz -C /usr/local/

6.png

2)配置文件

# cd /usr/local/taobao/metamorphosis-server-wrapper/

# vim conf/server.ini

搭建METAQ消息中间件_第5张图片

3)启动服务

./bin/metaServer.sh start &

##停止命令

./bin/metaServer.sh stop

##重启命令

./bin/metaServer.sh restart &

##重新加载topic配置

./bin/metaServer.sh reload &

##查看server状态

./bin/metaServer.sh stats

搭建METAQ消息中间件_第6张图片

4、检查部分

1)查看metaq注册到zookper上

# zk1/zookeeper-3.4.14/bin/zkCli.sh  -server 127.0.0.1:2181

9.png

###已注册,查看meatq的队列