RocketMQ 4.1 下载 编译 配置 启动

去年11月份阿里的rocketMq进入了apache的开源孵化阶段,这个是借鉴的kafa,11年移植过来的java版本,经过淘宝这些年的不断改进,功能已经非常强大;作为技术人员是必须要学习掌握的,今天与同事一起下载安装运行了一下,发现要真想跑起来中间踩了不少坑,不是那么一帆风顺,为了节省后续大家的时间,在这里总结一下;按照这个步骤一定可以跑起来

下载编译

git 地址https://github.com/apache/incubator-rocketmq;

下载release-4.0.0-incubating版本

下载到源码包后解压,进入到源码目录 ,执行maven命令编译打包(maven没有配置过自己去百度):
mvn -Dmaven.test.skip=true clean package install assembly:assembly    -p release-all   -U
注意 -p  release-all 参数一定要添加

编译后在target目录下 ,apache-rocketmq-all目录就是包含了所有内容  , apache-rocketmq-all.tar.gz  是它的压缩包;
然后将apache-rocketmq-all.tar.gz,拷贝到linux系统下解压运行;

启动


解压后的目录结构如下:
[root@jenkins apache-rocketmq-all]# ll
总用量 44
drwxr-xr-x 2 root root  4096 3月   9 15:16 benchmark
drwxr-xr-x 2 root root  4096 3月   9 16:41 bin
drwxr-xr-x 5 root root  4096 3月   9 16:42 conf
-rw-r--r-- 1 root root   525 3月   9 15:16 DISCLAIMER
drwxr-xr-x 2 root root  4096 3月   9 15:16 lib
-rw-r--r-- 1 root root 16129 3月   9 15:16 LICENSE
-rw-r--r-- 1 root root  1385 3月   9 15:16 NOTICE
-rw-r--r-- 1 root root  2362 3月   9 15:16 README.md

进入bin目录下启动脚本
[root@jenkins apache-rocketmq-all]# cd bin
[root@jenkins bin]# ll
总用量 100
-rwxr--r-- 1 root root 1654 3月   9 15:38 cachedog.sh
-rwxr--r-- 1 root root  845 3月   9 15:38 cleancache.sh
-rwxr--r-- 1 root root 1116 3月   9 15:38 cleancache.v1.sh
-rw-r--r-- 1 root root 1398 3月   9 15:38 mqadmin
-rw-r--r-- 1 root root 1344 3月   9 15:38 mqadmin.xml
-rw-r--r-- 1 root root 1394 3月   9 15:38 mqbroker
-rw-r--r-- 1 root root 1373 3月   9 15:38 mqbroker.numanode0
-rw-r--r-- 1 root root 1373 3月   9 15:38 mqbroker.numanode1
-rw-r--r-- 1 root root 1373 3月   9 15:38 mqbroker.numanode2
-rw-r--r-- 1 root root 1373 3月   9 15:38 mqbroker.numanode3
-rw-r--r-- 1 root root 1336 3月   9 15:38 mqbroker.xml
-rw-r--r-- 1 root root 1400 3月   9 15:38 mqfiltersrv
-rw-r--r-- 1 root root 1342 3月   9 15:38 mqfiltersrv.xml
-rwxr--r-- 1 root root 1396 3月   9 15:38 mqnamesrv
-rw-r--r-- 1 root root 1338 3月   9 15:38 mqnamesrv.xml
-rw-r--r-- 1 root root 1571 3月   9 15:38 mqshutdown
-rw------- 1 root root  866 3月   9 15:39 nohup.out
-rwxr--r-- 1 root root 2214 3月   9 15:38 os.sh
-rwxr--r-- 1 root root 1008 3月   9 15:38 play.sh
-rw-r--r-- 1 root root  772 3月   9 15:38 README.md
-rwxr--r-- 1 root root 2828 3月   9 15:38 runbroker.sh
-rwxr--r-- 1 root root 2391 3月   9 15:38 runserver.sh
-rwxr--r-- 1 root root 1156 3月   9 15:38 setcache.sh
-rwxr--r-- 1 root root 1408 3月   9 15:38 startfsrv.sh
-rwxr--r-- 1 root root 1870 3月   9 15:38 tools.sh

我们要执行两个启动脚本,一个是启动nameserver提供路由功能的,一个是启动broker负责消息处理的;

执行启动脚本前,要将脚本中window的中文回车换行替换为linux下的回车换行符,否则运行脚本会出错
进入到bin目录下执行以下命令即可:
[root@jenkins bin]# sed -i 's/\r//g'  *

启动nameserver
nameserver不需要配置直接启动,执行以下命令
[root@jenkins bin]# nohup sh mqnamesrv &
这个脚本最终调用了runserver.sh脚本,里面配置了jvm启动参数如下
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m"
默认监听端口为9876

启动broker
broker需要配置后才能启动

配置文件存储在conf目录下

drwxr-xr-x 2 root root  4096 3月   9 18:05 2m-2s-async
drwxr-xr-x 2 root root  4096 3月   9 18:07 2m-2s-sync
drwxr-xr-x 2 root root  4096 3月   9 17:26 2m-noslave
-rw-r--r-- 1 root root  1023 3月   9 17:24 broker.conf
-rw-r--r-- 1 root root 14235 3月   9 15:16 logback_broker.xml
-rw-r--r-- 1 root root  3825 3月   9 15:16 logback_filtersrv.xml
-rw-r--r-- 1 root root  3803 3月   9 15:16 logback_namesrv.xml
-rw-r--r-- 1 root root  3889 3月   9 15:16 logback_tools.xml
2m-2s-async  这个目录下的配置文件是主从异步的配置文件示例
2m-2s-sync     这个目录下的配置文件是主从同步的配置文件示例
2m-noslave    这个目录下的配置文件是没有从的配置文件示例

随便打开一个broker.conf配置文件,内容如下:

#nameserver,broker 的brokerClusterName相同说明他们是在一个集群下;
brokerClusterName=DefaultCluster
#broker的名称,如果是主从配置,主与从的配置文件这个参数名必须设置为相同的,然后通过brokerId来区分主从;   
brokerName=broker-a
#来判断是主还是从,主必须是0,从为大于1的值;
brokerId=0
deleteWhen=04
fileReservedTime=48
# broker的角色:1. ASYNC_MASTER 异步复制的master;2.  SYNC_MASTER 同步双写的master,slave  
brokerRole=ASYNC_MASTER
#刷盘:1. ASYNC_FLUSH 异步刷磁盘,性能高 ;2. SYNC_FLUSH同步刷磁盘,性能低
flushDiskType=ASYNC_FLUSH
#配置nameserver的ip,多个之间使用分号分隔;
namesrvAddr=192.168.2.246:9876;192.168.2.247:9876;

namesrvAddr是必须要配置的,配置好后启动broker;
[root@jenkins rocketmqlogs]# nohup sh mqbroker -c /var/opt/apache-rocketmq-all/conf/2m-2s-async/broker-a-s.properties &
-c 命令来指定配置文件的路径

运行日志
运行起来后输出日志存放在 ~/logs/rocketmqlogs/路径下
[root@jenkins rocketmqlogs]# cd ~/logs/rocketmqlogs/
[root@jenkins rocketmqlogs]# ll -t
总用量 1624
-rw-r--r-- 1 root root   17744 3月   9 20:42 namesrv.log
-rw-r--r-- 1 root root 1222480 3月   9 18:52 watermark.log
-rw-r--r-- 1 root root  121997 3月   9 18:51 broker.log
-rw-r--r-- 1 root root  246306 3月   9 18:51 store.log
-rw-r--r-- 1 root root   21977 3月   9 18:49 remoting.log
-rw-r--r-- 1 root root       0 3月   9 15:54 commercial.log
-rw-r--r-- 1 root root       0 3月   9 15:54 stats.log
-rw-r--r-- 1 root root       0 3月   9 15:54 lock.log
-rw-r--r-- 1 root root       0 3月   9 15:54 transaction.log
-rw-r--r-- 1 root root       0 3月   9 15:54 storeerror.log
-rw-r--r-- 1 root root       0 3月   9 15:54 protection.log
-rw-r--r-- 1 root root       0 3月   9 15:54 broker_default.log
-rw-r--r-- 1 root root       0 3月   9 15:39 namesrv_default.log

如果要修改日志存放路径,到conf目录下修改logback的配置即可;
到此为止broker就启动起来了;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值