RocketMQ入门篇-三分钟入门RocketMQ

RocketMQ入门Demo
首先在window中安装好RocketMQ

依赖

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

生产者

package com.zero.day1;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;

public class SyncProducerDemo {

    public static void main(String[] args) {
        DefaultMQProducer producer = null;
        try {
            producer = new DefaultMQProducer("TopicTst");
            producer.setNamesrvAddr("127.0.0.1:9876");

            producer.start();

            for (int i = 0; i < 100; i++) {
                Message msg = new Message("TopicTst", "TagA", "Hello RocketMQ".getBytes(RemotingHelper.DEFAULT_CHARSET));
                SendResult sendResult = producer.send(msg);
                System.out.println("返回内容" + sendResult);

            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            producer.shutdown();
        }

    }
}

消费者

package com.zero.day1;

import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;

import java.util.List;

public class ConsumerDemo {

    public static void main(String[] args) {
        try{
            DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("TopicTst");
            consumer.setNamesrvAddr("127.0.0.1:9876");

            consumer.subscribe("TopicTst", "*");
            consumer.registerMessageListener(new MessageListenerConcurrently() {
                public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
                    System.out.println("Receive: " + list);
                    return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
                }
            });
            consumer.start();
        }catch (Exception e) {
            e.printStackTrace();
        }


    }
}

启动
RocketMQ入门篇-三分钟入门RocketMQ_第1张图片
RocketMQ入门篇-三分钟入门RocketMQ_第2张图片
可能出现的错误

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest

自动创建Topic失败了,改成手动创建topic

mqadmin updateTopic -b 127.0.0.1:10911 -n 127.0.0.1:9876 -t TopicTest

或者改成自动创建Topic

Window: mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
Linux:nohup sh mqbroker -n 192.168.180.133:9876 autoCreateTopicEnable=true

插件部署
安装
在window安装RocketMQ插件

首先git下载文件 地址:https://github.com/apache/rocketmq-externals.git
RocketMQ入门篇-三分钟入门RocketMQ_第3张图片
配置
下载之后 今日rocketmq-console\src\main\resource 修改application.properties文件

编译启动
进入rocketmq-console

执行

mvn clean package -Dmaven.test.skip=true

启动后台
在target目录下 执行

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

启动浏览器 输入127.0.0.1:8001
RocketMQ入门篇-三分钟入门RocketMQ_第4张图片

你可能感兴趣的:(RocketMQ入门篇-三分钟入门RocketMQ)