前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RocketMQ 入门使用

RocketMQ 入门使用

作者头像
灬沙师弟
发布2023-03-22 19:41:01
2760
发布2023-03-22 19:41:01
举报
文章被收录于专栏:Java面试教程Java面试教程
上篇文章我们讲解

一. 前提条件

我们需要把RocketMQ运行起来,它包含两个组件,NameServer和Broker,把这两个组件运行起来就可以了,可以二进制运行,或者把源码拉下来运行,大家参考一下官方文档就可以运行起来了,这里我讲解一下拉取源码的方式运行。 先将distribution/conf目录,复制到源码的目录

  1. 运行NameServer

运行成功输出

  1. 运行Broker

broker.conf添加配置:namesrvAddr=127.0.0.1:9876

运行成功输出

单机版的RocketMQ集群就搭建完成了,在本机运行可以方便我们以后调试。

二.生产者

maven需要依赖rocketmq-client

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.5.0</version>
</dependency>
代码语言:javascript
复制
public class Producer {
    public static void main(String[] args) throws MQClientException{
        DefaultMQProducer producer = new DefaultMQProducer("demoProducerGroup");
        //设置nameserver地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        producer.start();

        for (int i = 0; i < 1; i++) {
            try {
                //生成mq消息
                Message msg = new Message("TopicTest" /* Topic */,
                                          "TagA" /* Tag */,
                                          ("关注java面试教程 学习更多知识").getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
                                         );
                //同步发送mq消息到broker,获取到结果,可以知道是否发送成功
                SendResult sendResult = producer.send(msg);
                System.out.printf("%s%n", sendResult);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        producer.shutdown();
    }
}

运行结果:发送成功,并返回了消息id

三.消费者

代码语言:javascript
复制
public class Consumer {

    public static void main(String[] args) throws MQClientException {
        //设置消费者组
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("demoConsumerGroup");
        //设置nameserver地址
        consumer.setNamesrvAddr("127.0.0.1:9876");
        //第一次消费从那开始消费
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
        //消费模式
        consumer.setMessageModel(MessageModel.CLUSTERING);
        consumer.subscribe("TopicTest", "*");
        //mq消息的回调函数
        consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
            System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
        });

        consumer.start();

        System.out.printf("Consumer Started.%n");
    }
}

输出刚刚发送到mq的消息:

四.小结

今天我们学习了怎么运行RocketMQ, 以及使用它来生产消息和消费消息,下篇我们来学习一下RocketMQ的生产者和消费者的核心概念。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 前提条件
  • 二.生产者
  • 三.消费者
  • 四.小结
相关产品与服务
消息队列
腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档