Apache RocketMQ 4.0.0

一、安装与配置

1、下载

官网:http://rocketmq.apache.org/

如:rocketmq-all-4.0.0-incubating-bin-release.zip

需要

64bit OS, Linux/Unix/Mac is recommended;
64bit JDK 1.7+;

2、复制到对应目录,linux中解压

复制rocketmq-all-4.0.0-incubating-bin-release.zip到  /opt/rocketmq

1mkdir /opt/rocketmq 2cd /opt/rocketmq 3unzip rocketmq-all-4.0.0-incubating-bin-release.zip

3、增加执行权限:

1cd bin 2chmod +x *

4、增加环境变量

vi /etc/profile

使用vi 编辑器,在profile文件的末尾加入如下命令:

1export ROCKETMQ_HOME=/opt/rocketmq/apache-rocketmq-all 2export PATH=$PATH::$ROCKETMQ_HOME/bin

输入:wq! 保存并退出

使得配置立刻生效:

source /etc/profile

5、创建日志目录

cd /opt/rocketmq && mkdir logs

6、启动Name Server

1cd /opt/rocketmq/apache-rocketmq-all/bin 2&& nohup sh mqnamesrv > /opt/rocketmq/logs/mqnamesrv.log 2> /opt/rocketmq/logs/mqnamesrv.log &

7、配置Broker

启动之前,可以适当更改一下runbroker.sh参数

runbroker.sh需要根据内存大小进行适当地调整

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xgmn1g -XX:PermSize=1g -XgX:MaxPermSize=1g"

本机为虚拟机,就设置小点,1-2g内存,如下:

修改配置文件:conf/2m-noslave/broker-a.properties

样例:

1listenPort=10911 2namesrvAddr=192.168.62.100:9876 3brokerClusterName=DefaultCluster 4brokerName=broker-a 5brokerId=0 6deleteWhen=04 7fileReservedTime=72 8brokerRole=ASYNC_MASTER 9flushDiskType=ASYNC_FLUSH

其中 192.168.62.100 为虚拟机静态ip

8、启动Broker

1cd /opt/rocketmq/apache-rocketmq-all/bin 2&& nohup sh mqbroker autoCreateTopicEnable=true 3-c /opt/rocketmq/apache-rocketmq-all/conf/2m-noslave/broker-a.properties 4> /opt/rocketmq/logs/mqbroker.log 2>/opt/rocketmq/logs/mqbroker.log &

autoCreateTopicEnable=true 允许 Broker 自动创建Topic,建议线下开启,线上关闭

9、测试

测试生产者:

1cd /opt/rocketmq/apache-rocketmq-all 2export NAMESRV_ADDR=localhost:9876 3sh /opt/rocketmq/apache-rocketmq-all/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

测试消费者:

sh /opt/rocketmq/apache-rocketmq-all/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

 测试OK。

二、快捷命令

1、查看进程

1ps aux | grep java | awk '/broker/rocketmq_nameserver' 2ps aux | grep java | awk '/broker/rocketmq_brokerserver'

2、查看日志

1tail -f /opt/rocketmq/logs/mqnamesrv.log 2tail -f /opt/rocketmq/logs/mqbroker.log

3、关闭Name Server、Broker

1cd /opt/rocketmq/apache-rocketmq-all/bin && sh mqshutdown namesrv 2cd /opt/rocketmq/apache-rocketmq-all/bin && sh mqshutdown broker

三、问题

1、如果消费者、生产者位于不通的网段需要经过防火墙的话,需要开通到broker和nameserver的防火墙端口

lokkit -p 9876:tcp -p 10911:tcp

2、 connect to <192.168.62.100:10909> failed

Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909。若Rocket服务器未启动端口10909,则报connect to <> failed。

解决方式:

1)增加一行代码

producer.setVipChannelEnabled(false);

2)增加对端口10909的防火墙开启。

四、运维

官方有提供源码可以去玩:

源码:

https://github.com/apache/incubator-rocketmq-externals

里面包括了各种RocketMQ的扩展工具,如

rocketmq-console 是 web控制台(springboot工程),可以查看broker、生产者、消费者、消息等相关的内容。

具体用法可以查看工程的README.md

效果图:

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )