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
RocketMQ 部署的更多相关文章
- rocketMQ部署
rocketMQ部署(单机) 1. 环境: CentOS7 64 & JDK1.8+ 64 & 用户:www 2. 下载binary文件包: ...
- Docker 版rocketmq部署
rocketmq 部署启动指南-Docker 版 最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作# ...
- 分布式消息队列RocketMQ部署
一.RocketMQ简介: RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: 1.支持严格的消息顺序: 2.支持Topic与Queue两种模式: 3.亿级消息堆积能力: 4.比较友好 ...
- rocketmq 部署启动指南-Docker 版
最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑. 准备工作 在搭建之前,我们需要做一些准备工作,这里我们需要使用 ...
- rocketmq部署架构
1 技术架构 RocketMQ架构上主要分为四部分,如上图所示: Producer:消息发布的角色,支持分布式集群方式部署.Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息 ...
- 分布式消息列队RocketMQ部署
模式: 多Master多Slave模式,异步复制: 每个 Master 配置一个 Slave,有多对Master-Slave,HA 采用异步复制方式,主备有短暂消息延迟,毫秒级. 优点:即使磁盘损坏, ...
- Linux分布式消息队列RocketMQ部署与监控--双Master
环境准备:CentOS_6.5_x64 IP: 192.168.0.249 dbTest249 Master1 IP: 192.168.0.251 webTest251 Master2 下载 ali ...
- rocketMQ安装部署详细解析
近来研究了Apache开源项目rocketMQ(原为阿里项目),并在两台linux服务器上完成了部署,现在整理下,供大家参考学习. 一.简介rocketMQRocektMQ是阿里巴巴在2012年开源的 ...
- RocketMQ安装部署
一.简介RocketMQ RocektMQ是阿里巴巴在2012年开源的一个纯java.分布式.队列模型的第三代消息中间件,不仅在传统高频交易链路有着低延迟的出色表现,在实时计算等大数据领域也有着不错的 ...
随机推荐
- 沉迷AC自动机无法自拔之:[UVALive 4126] Password Suspects
图片加载可能有点慢,请跳过题面先看题解,谢谢 一看到这么多模式串就非常兴奋,又是\(AC\)自动机 题目就是要求:经过 \(n\) 个节点,把所有单词都遍历一遍的方案数,和那道题差不多嘛 所以这样设: ...
- [BZOJ2957] [THU2013集训] 楼房重建
套路套路套路套路套路套路套路套路套路套路... 我只能这么说:一道裸得只剩下套路的水题... 线段树维护单调栈,显然,能够看到的楼房一定是递增的,但不是按高度递增,而是按高度和坐标的比值递增 所以我们 ...
- HGOI20180822 五校联考卷
T1 [题目意思]给出下列程序片段,预测程序运行结果 输入文件为T(T<=200)组数据,每组数据有个n(n<=1014) 输出文件为T行,每行一个数据,表示fun(n)的值 simple ...
- 【转】STM32 - 程序跳转、中断、开关总中断
程序跳转注意: 1.如果跳转之前的程序A里有些中断没有关,在跳转之后程序B的中断触发,但程序B里没有定义中断响应函数,找不到地址会导致死机. 2.程序跳转前关总中断,程序跳转后开总中断(关总中断,只是 ...
- list All elements are null引起的异常
ArrayList允许添加null值,就容易造成了list内的对象转换出现java.lang.NullPointerException异常. 场景: 数据库 select min(id) as id ...
- 51nod1462 树据结构(树链剖分+线段树)
这题好久之前就被学长安利了...一直没写珍藏在收藏夹一个不为人知的角落233 这题怎么做...我们来数形结合,横坐标为$t_i$被加的次数(可看作时间$t$),纵坐标为$v_i$,那么$t_i$实际上 ...
- SSM框架的搭建与测试
关于框架的搭建无非就是 框架所依赖的jar包,然后就是关于各个框架的配置文件: 下面我们来看下不同层的依赖的jar包以及各个配置文件: 首先pojo这一层只需要依赖parent聚合工程 mapper层 ...
- Jenkins与Docker的自动化CI/CD实战
Jenkins与Docker的自动化CI/CD实战 互联网Java架构 2018-09-19 15:46:13 一.发布流程设计 工作流程: 开发人员提交代码到Git版本仓库:Jenkins人工/定时 ...
- 浅入浅出Lambda表达式
大家在开发中会经常看到也会经常使用lambda表达式. 园子里也有很多详解lambda表达式的文章,多是从横向来讲述. 但lambda表达式到底如何变成现在这个样子,表达式的形式到底代表什么含义,这些 ...
- java基础基础总结----- System
常用的方法: 细节分析: