RocketMQ 入门学习笔记

1.概念学习

官方文档:Quick Start - Apache RocketMQ 参考相关链接:RocketMQ入门介绍 - myseries - 博客园 参考学习教程:【叩丁狼教育】RocketMQ从入门到成神_哔哩哔哩_bilibili

2.环境搭建

RocketMQ 下载与安装:

下载:Downloading the Apache RocketMQ Releases - Apache RocketMQ

Win平台安装:

1.下载后解压 2.根据解压路径配置环境变量 3.修改broker配置文件 在conf目录下找到broker.conf文件,并在最后一行添加如下配置

enablePropertyFilter=true namesrvAddr=127.0.0.1:9876#nameServerAddr服务地址

4.依次启动namerserver、broker 启动nameserver

在bin目录下找到mqnamesrv.cmd 双击或者使用cmd运行

启动broker

在bin目录下找到mqbroker.cmd 使用cmd启动mqbroker并指定配置文件的位置 mqbroker.cmd -c ../conf/borker.conf

5.启动管理控制台 控制台需要另外额外下载, 下载路径Release rocketmq-console-1.0.0 · apache/rocketmq-externals · GitHub 下载源码包后使用idea打开并使用mvnen安装一下,打jar包启动或者直接在idea中启动均可 ​

打jar包启动: 修改pom文件中的版本号,打包版本为:1.0.1 ​

<artifactId>rocketmq-console-ng</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>

打包后将target目录下的rocketmq-console-ng-1.0.1.jar和application.properties文件复制到想要启动的目录下: 修改application.properties文件中nameserAddr的配置为刚才mqnameserver启动的配置:

server.contextPath=
server.port=8080
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr  NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=127.0.0.1:9876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/tmp/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true

之后就可以使用 java -jar 命令启动jar包 ​

启动后,在浏览器中输入:http://localhost:8080/#/即可查看页面 ​

启动后打开集群页面如下则说明win平台下RocketMQ启动配置成功:

 

Linux平台安装:

1.下载:Downloading the Apache RocketMQ Releases - Apache RocketMQ 下载: rocketmq-all-4.4.0-bin-release.zip包 2.传到linux平台 3.解压文件并重名为rocketmq-4.4 没有解压软件的需要安装解压软件:yum install -y unzip zip

unzip rocketmq-all-4.4.0-bin-release.zip mv rocketmq-all-4.4.0-bin-release rocketmq-4.4

4.修改启动参数(rocket默认启动jvm参数较大,不修改不行) 修改bin目录下的runserver.sh和runbroker.sh 修改runserver.sh ​

vim runserver.sh 将 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" 修改为: JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" ​

修改runbroker.sh

vim runbroker.sh 将JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" 修改为: JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m" ​

5.启动RocketMQ 启动RocketMQ分为两步,一步是启动nameserver,一步是启动broker,必须先启动namesrv才能启动broker 后台启动nameserver

nohup sh rocketmq-4.4/bin/mqnamesrv & ​

使用netstat -ntulp命令看到如下端口则启动成功: ​

启动broker ( -n localhost:9876 & 是指定nameserver地址配置)

nohup sh rocketmq-4.4/bin/mqbroker -n localhost:9876 &

使用netstat -ntulp命令看到如下端口则启动成功:

或者使用jps命令看到如下两个:则表明启动成功:

6.使用控制台界面查看: 修改rocketmq-console-ng-1.0.1.jar的配置文件,将rocketmq.config.namesrvAddr指定为lniux地址 启动界面看到如下即表明启动成功:

 

补充:关闭RocketMQ: 关闭namesrv服务:sh bin/mqshutdown namesrv 关闭broker服务 :sh bin/mqshutdown broker ​

3.RocketMQ原生API学习

创建两个maven工程,分别是rocketmq-producer工程和rocketmq-consumer工程 在两个工程中分别引入如下依赖:

  <dependency>
     <groupId>org.apache.rocketmq</groupId>
     <artifactId>rocketmq-client</artifactId>
     <version>4.4.0</version>
  </dependency>

编写生产者代码:

public class Producer {
    public static void main(String[] args) throws Exception {
        //1.创建出来一个生产者对象
        DefaultMQProducer defaultMQProducer = new DefaultMQProducer("rocketmq-producer");
        //2.绑定namesrv的地址
        defaultMQProducer.setNamesrvAddr("192.168.126.128:9876");
        //3.启动生产者
        defaultMQProducer.start();
        //4.创建一个消息对象,把要发送的的消息放在消息对象中
        Message message = new Message("hello","你好呀".getBytes());
        //5.使用生产着发出消息(默认使用同步方式发送)
        SendResult sendResult = defaultMQProducer.send(message);
        System.out.println(sendResult);
        //6.关闭资源
        defaultMQProducer.shutdown();
​
    }
}

编写消费者代码:

public class Consumer {
    public static void main(String[] args) throws Exception {
        //1.创建出来一个消费者对象
        DefaultMQPushConsumer consumer  = new DefaultMQPushConsumer("rocketmq-consumer");
        //2.绑定namesrv的地址
        consumer.setNamesrvAddr("192.168.126.129:9876");
        //3.监听要消费的消息的主题
        consumer.subscribe("hello","*");//所有tag都消费
        //4.写监听的方法,监听消息
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            //如果监听到指定的topic就会执行consumeMessage方法
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list,
                ConsumeConcurrentlyContext consumeConcurrentlyContext) {
                //消息就存在list里面
                for (MessageExt messageExt : list) {
                    System.out.println("消息的内容为:"+new String(messageExt.getBody()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        //5.启动消费者
        consumer.start();
​
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值