rocketMq的服务安装和java测试

1.从官网下载rocketMq
Apache 官方下载网址:https://www.apache.org/dyn/closer.cgi?path=rocketmq

  • 如下图所示选择其中一个下载链接就行,我选择的是3.0

    rocketMq的服务安装和java测试_第1张图片
    2.把文件解压出来,如下图所示
    rocketMq的服务安装和java测试_第2张图片
    3.在window 上启动:
    用cmd进入bin目录下执行启动命令
    start mqnamesrv.cmd
    会弹出一个框,表示启动成功rocketMq的服务安装和java测试_第3张图片
    然后在bin目录下再执行
    start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
    autoCreateTopicEnable=true表示默认创建topic
    在linux中的启动命令:

    nohup sh bin/mqnamesrv &
    nohup sh bin/mqbroker -n 127.0.0.1:9876 &
    

    4.用java代码发送和接收消息

    生产者:

package demo;

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 producerTest {
    public static void main(String[] args) throws Exception {
        while(true){
            DefaultMQProducer mqProducer = new DefaultMQProducer("producerTest");
            mqProducer.setNamesrvAddr("127.0.0.1:9876");
            mqProducer.start();
            Message msg = new Message("TopicTest1",
                    "TagA",
                    "key1",
                    "Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
            SendResult sendResult = mqProducer.send(msg);
            System.out.printf("%s%n", sendResult);
            mqProducer.shutdown();
        }
    }
}

消费者:

package demo;

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 customerTest {
    public static void main(String[] args) throws Exception {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("customerTest");
        consumer.setNamesrvAddr("127.0.0.1:9876");
        consumer.subscribe("TopicTest1", "*");//订阅全部
        //consumer.subscribe("TopicTest1", "TagA || TagB");订阅多个
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
                for(MessageExt msg:msgs){
                    if (msg.getTopic().equals("TopicTest1")) {
                        if (msg.getTags() != null && msg.getTags().equals("TagA")) {
                            System.out.println("TagA:"+new String(msg.getBody()));
                        }
                    }
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        consumer.start();
    }
}

rocketMq可视化视图下载与安装

你可能感兴趣的:(java应用,rocketMq)