RocketMQ 部署

1. 下载

下载RocketMQ
wget https://github.com/alibaba/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz
tar alibaba-rocketmq-3.2.6.tar.gz
cd rocketmq
sh install.sh

启动RMQ

  进入bin目录

  运行 nohup mqnamesrv -n 172.16.192.186:9876 &↙ 启动nameserver服务。

  运行 nohup mqbroker -n 172.16.192.186:9876↙ 启动broker服务

  其中,172.16.192.186为我本机的IP。

 

 

RocketMQ 话题管理

RocketMQ 提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker 等信息的管理;

登录控制台

首先进入RocketMQ 工程,进入/RocketMQ/bin

在该目录下有个mqadmin 脚本

查看帮助

在mqadmin 下可以查看有哪些命令

sh mqadmin

查看具体命令的使用

sh mqadmin help 命令名称

例如,查看updateTopic 的使用

sh mqadmin help updateTopic

 

创建用户:

rabbitmqctl add_vhost dnt_mq  

rabbitmqctl list_vhosts

rabbitmqctl add_user admin 617595

rabbitmqctl set_permissions -p dnt_mq admin ".*" ".*" ".*"

rabbitmqctl list_user_permissions admin  

rabbitmqctl set_user_tags admin administrator

rabbitmq-plugins enable rabbitmq_management  

 

UI界面 http://ip:15672/  用户名密码 admin

无法登陆解决办法

vim /etc/rabbitmq/rabbitmq.config

写入信息,并保存

[{rabbit, [{loopback_users, [admin]}]}]

1.2. 详细命令

1.2.1. 创建Topic

指令 

updateTopic 

类路径 

com.alibaba.rocketmq.tools.command.topic.UpdateTopicSubCommand

参数

是否必填

说明

-b

如果-c为空,则必填

broker 地址,表示topic 建在该broker

-c

如果-b为空,则必填

cluster 名称,表示topic 建在该集群(集群可通过clusterList 查询)

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

-p

否 

指定新topic 的权限限制( W|R|WR )

-r 

可读队列数(默认为8)

-w

可写队列数(默认为8)

-t

opic 名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )

 

1.2.2. 删除Topic

指令 

deleteTopic 

类路径 

com.alibaba.rocketmq.tools.command.topic.DeleteTopicSubCommand

参数 

是否必填

 说明

-c

cluster 名称,表示删除某集群下的某个topic (集群可通过clusterList 查询)

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;…

-t

topic 名称(名称只能使用字符 ^[a-zA-Z0-9_-]+$ )

 

1.2.3. 创建(修订)订阅组

指令 

updateSubGroup 

类路径 

com.alibaba.rocketmq.tools.command.consumer.UpdateSubGroupSubCommand

参数

是否必填

说明

-b

如果 –c 为空,则必填

broker 地址,表示订阅组建在该broker

-c

如果 –b 为空,则必填

cluster名称,表示topic 建在该集群(集群可通过clusterList查询)

-d

否 

是否容许广播方式消费

-g

是 

订阅组名

-i

从哪个broker 开始消费

-m

是否容许从队列的最小位置开始消费,默认会设置为false

-q

消费失败的消息放到一个重试队列,每个订阅组配置几个重试队列

-r 

否 

重试消费最大次数,超过则投递到死信队列,不再投递,并报警

-s

消费功能是否开启

-w 

发现消息堆积后,将Consumer 的消费请求重定向到另外一台Slave 机器

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.4. 删除订阅组配置

指令 

deleteSubGroup 

类路径 

com.alibaba.rocketmq.tools.command.consumer.DeleteSubscriptionGroupCommand

参数

是否必填

说明

-b 

如果–c 为空,则必填

broker 地址,表示订阅组建在该broker

-c 

如果–b 为空,则必填

cluster 名称,表示topic建在该集群(集群可通过clusterList查询)

-g

订阅组名

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.5. 更新Broker 配置文件

指令 

updateBrokerConfig

类路径

com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand

参数

是否必填

说明

-b 

如果–c为空,则必填

broker 地址,表示订阅组建在该broker

-c 

如果–b 为空,则必填

cluster名称,表示topic 建在该集群(集群可通过clusterList查询)

-k 

 key 值

-v

value 值

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.6. 查看Topic 列表信息

指令 

topicList 

类路径 

com.alibaba.rocketmq.tools.command.broker.UpdateBrokerConfigSubCommand

参数

是否必填

说明

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.7. 查看Topic 路由信息

指令 

topicRoute 

类路径 

com.alibaba.rocketmq.tools.command.topic.TopicRouteSubCommand

参数

是否必填

说明

-t

topic 名称

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.8. 查看Topic 统计信息

指令 

topicStats 

类路径

com.alibaba.rocketmq.tools.command.topic.TopicStatsSubCommand

参数

是否必填

说明

-t

topic 名称

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.9. 查看Broker 统计信息

指令 

brokerStats 

类路径

com.alibaba.rocketmq.tools.command.broker.BrokerStatsSubCommanD

参数

是否必填

说明

-b

 broker 地址

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.10. 根据消息ID 查询消息

指令 

queryMsgById 

类路径

com.alibaba.rocketmq.tools.command.message.QueryMsgByIdSubCommand

参数

是否必填

说明

-i

 消息id

-h

打印帮助

-n 

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.11. 根据消息Key 查询消息

指令 

queryMsgByKey 

类路径

com.alibaba.rocketmq.tools.command.message.QueryMsgByKeySubCommand

参数

是否必填

说明

-f

被查询消息的截止时间

-k

msgKey

-t

topic 名称

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.12. 根据Offset 查询消息

指令 

queryMsgByOffset

类路径

com.alibaba.rocketmq.tools.command.message.QueryMsgByOffsetSubCommand

参数

是否必填

说明

-b 

Broker 名称,表示订阅组建在该broker(这里需要注意填写的是broker 的名称,不是broker 的地址,broker名称可以在clusterList 查到

-i

query 队列id

-o

offset 值

-t

topic 名称

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.13. 查询Producer 的网络连接

该命令只打印当前与cluster 连接的producer 网络连接信息

指令 

producerConnection

类路径

com.alibaba.rocketmq.tools.command.connection.ProducerConnectionSubCommand

参数

是否必填

说明

-g

生产者所属组名

-t

topic 名称

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.14. 查询Consumer 的网络连接

该命令只打印当前与cluster 连接的consumer 网络连接信息

指令 

consumerConnection

类路径

com.alibaba.rocketmq.tools.command.connection.ConsumerConnectionSubCommand

参数

是否必填

说明

-g

消费者所属组名

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.15. 查看订阅组消费状态

指令 

consumerProgress

类路径

com.alibaba.rocketmq.tools.command.consumer.ConsumerProgressSubCommand

参数

是否必填

说明

-g

消费者所属组名

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.16. 查看集群消息

指令 

clusterList 

类路径

com.alibaba.rocketmq.tools.command.cluster.ClusterListSubCommand

参数

是否必填

说明

-m

打印更多信息

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.17. 添加(更新)KV 配置信息

指令 

updateKvConfig 

类路径

com.alibaba.rocketmq.tools.command.namesrv.UpdateKvConfigCommand

参数

是否必填

说明

-k

key 值

-v

value 值

-s

Namespace 值

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.18. 删除KV 配置信息

指令 

deleteKvConfig 

类路径

com.alibaba.rocketmq.tools.command.namesrv.DeleteKvConfigCommand

参数

是否必填

说明

-k

key 值

-s

Namespace 值

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.19. 添加(更新)Project group 配置信息

指令 updateProjectGroup 

类路径 com.alibaba.rocketmq.tools.command.namesrv.UpdateProjectGroupCommand

参数

是否必填

说明

-p

project group 名

-i

服务器ip

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.20. 删除Project group 配置信息

指令 

deleteProjectGroup

类路径

com.alibaba.rocketmq.tools.command.namesrv.DeleteProjectGroupCommand

参数

是否必填

说明

-p

project group 名

-i

服务器ip

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.21. 取得Project group 配置信息

指令 

getProjectGroup

类路径

com.alibaba.rocketmq.tools.command.namesrv.GetProjectGroupCommand

参数

是否必填

说明

-p

project group 名

-i

服务器ip

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.22. 设置消费进度

根据时间来设置消费进度,设置之前要关闭这个订阅组的所有consumer,设置完再启动,方可生效

指令 

resetOffsetByTime

类路径

com.alibaba.rocketmq.tools.command.offset.ResetOffsetByTimeSubCommand

参数

是否必填

说明

-f

通过时间戳强制回滚(true|false),默认为true

-s

时间戳

-g

消费者所属组名

-t

topic 名称

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.23. 清除特定Broker权限

指令 

wipeWritePerm 

类路径

com.alibaba.rocketmq.tools.command.namesrv.WipeWritePermSubCommand

参数

是否必填

说明

-b

broker 地址

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

1.2.24. 获取Consumer消费进度

该命令只打印当前与cluster 连接的consumer 的消费进度

指令 

getConsumerStatus

类路径 

com.alibaba.rocketmq.tools.command.offset.GetConsumerStatusCommand

参数

是否必填

说明

-g

消费者所属组名

-t

查询主题

-i

Consumer 客户端ip

-h

打印帮助

-n

nameserve 服务地址列表,格式ip:port;ip:port;...

 

 

3.生产者和消费者

 

http://www.cnblogs.com/super-d2/p/4154541.html

最佳实践

http://www.uml.org.cn/zjjs/201504021.asp?artid=16162

 

posted @ 2016-04-25 20:28  kevin-zhang  阅读(1595)  评论(0编辑  收藏  举报