1.下载安装包
https://mirrors.bfsu.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
官网地址:
https://www.apache.org/dyn/closer.cgi?path=rocketmq
官方文档:
http://rocketmq.apache.org/docs/quick-start/
2.配置环境变量
配置rocket环境:
3.启动rocketMQ服务
a.首先启动名称服务器
mqnamesrv.cmd
b.启动broker runbroker.cmd
mqbroker.cmd -n localhost:9876 autoCreateTopicEnable=true
4.消息发送测试
使用命令行创建topic
在rocketmq目录下 打开cmd窗口 输入下面的命令,创建一个名为:TestRocket的主题队列。
./mqadmin updateTopic -n localhost:9876 -b localhost:10911 -t
TestRocket
消息生产者
```java
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("TestRocket",
"TagA",
"key1",
"Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
SendResult sendResult = mqProducer.send(msg);
System.out.printf("%s%n", sendResult);
mqProducer.shutdown();
}
}
}
消息生产成功
消息消费者
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("TestRocket", "*");//订阅全部
//consumer.subscribe("TopicTest1", "TagA || TagB");订阅多个
consumer.registerMessageListener(new MessageListenerConcurrently() {
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
for(MessageExt msg:msgs){
if (msg.getTopic().equals("TestRocket")) {
if (msg.getTags() != null && msg.getTags().equals("TagA")) {
System.out.println("TagA:"+new String(msg.getBody()));
}
}
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
consumer.start();
}
}
消息消费成功