RocketMQ安装和使用

linux安装

查看java版本

java -version

1.8正好,11要修改很多地方。

解压rocketmq

unzip rocketmq-all-4.5.1-bin-release.zip

移动到opt目录下,并重命名文件夹为rocketmq。

修改配置文件

/etc/profile文件下加上

ROCKET_HOME=/opt/rocketmq

PATH=$PATH:$ROCKET_HOME/bin

生效命令(需要在rocketmq目录中?)

. /etc/profile    (有空格)

启动

Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

修改bin/runserver.sh,bin/runbroker.sh,bin/tools.sh文件,改成自己的jdk地址

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java/jdk1.8.0_321

继续报错 VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release

内存溢出。

还是刚才的三个文件,把内存改小

-server -Xms1g -Xmx1g -Xmn256m(自己合适就行)

mqnamesrv  启动成功

# 1.启动Broker ,内存还要改小,和namesrv不是共用内存的。

mqbroker -n localhost:9876

日志位置

root/logs/rocketmqlogs

关闭

mqshutdown broker

mqshutdown namesrv

可视化工具rocketmq-externals-rocketmq-console-1.0.0

导入idea后,换成jdk1.8,然后通过命令打包

mvn clean package -DskipTests

然后target目录下cmd,运行jar包

java -jar rocketmq-console-ng-1.0.0.jar

跑不起来就直接idea运行吧,懒得改jdk版本了。

连接失败

修改broker.conf,增加

namesrvAddr = 121.196.1.1:9876

brokerIP1 = 121.196.1.1

重新运行

mqbroker -n localhost:9876 -c conf/broker.conf

还是不行,RocketMQ默认使用3个端口:9876 、10911 、11011 

端口打开,连接成功。

windows安装

先下载rocketmq,解压,配置环境变量

ROCKETMQ_HOME

E:\Program\rocketmq-all-4.5.1-bin-release\rocketmq-all-4.5.1-bin-release

在bin文件夹中

启动cmd start mqnamesrv.cmd

等到有success

启动broker

start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

autoCreateTopicEnable=true?自动创建主题

没有linux碰到的麻烦多,可能自己电脑内存比云服务器大

可视化工具下载

https://github.com/apache/rocketmq-externals/archive/rocketmq-console-1.0.0.zip

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

编译E:\WorkSpace\rocketmq-externals-rocketmq-console-1.0.0\rocketmq-externals-rocketmq-console-1.0.0\rocketmq-console

mvn clean package -Dmaven.test.skip=true  直接双击打包会出问题

clean package -DskipTests

运行target

java -jar rocketmq-console-ng-1.0.0.jar

报错javax/xml/bind/ValidationException  猜测是默认JDK版本过高,怎么使用JDK8启动?

过时版本,先凑合用;

解决办法:直接idea中运行

RocketMQ使用

导入maven包

<rocketmq-spring-boot-starter-version>2.0.3</rocketmq-spring-boot-starter-version>

<dependency>

<groupId>org.apache.rocketmq</groupId>

<artifactId>rocketmq-spring-boot-starter</artifactId>

<version>${rocketmq-spring-boot-starter-version}</version>

</dependency>

spring项目创建监听类


监听主题和分组

主题topic就是这个监听只会监听这个主题的消息

分组consumerGroup是消费者的分组,如果有多个消费者都是这个分组,那他们就会分工合作,保证不会重复读取消息。(消费端自己协调,和生产端没关系)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容