RocketMQ系列(五):RocketMQ和spring集成

1、下载依赖

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

2、编写生产者和消费者

2.1、编写生产者(包含同步消息、异步消息、单向消息、延迟消息、批量消息)

public class Producer {

    public static void main(String[] args) throws Exception {
        //1.创建消息生产者Producer,并指定生产者组名
        DefaultMQProducer producer=new DefaultMQProducer("group1");
        //2.指定nameServer地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        //3.启动Producer
        producer.start();
        for(int i=0;i<5;i++){
            //4.创建消息对象,指定主题Topic,tag和消息体
            Message message=new Message("topic","tag",("hello world"+i).getBytes());
 			//设置延迟时间
            //message.setDelayTimeLevel(2);

            //5.发送消息
            //5.1同步消息
            /*SendResult sendResult=producer.send(message);
            System.out.println("发送状态:"+sendResult.getSendStatus())*/
            
            //5.2异步消息
           /*producer.send(message, new SendCallback() {
                @Override
                public void onSuccess(SendResult sendResult) {
                    System.out.println("发送成功");
                }
                @Override
                public void onException(Throwable throwable) {
                    System.out.println("发送失败");
                }
            });*/
			
			//5.3单向消息
            //producer.sendOneway(message);
            //5.4批量消息
            /*
            List<Message> msgs=new ArrayList<>();
            Message message=new Message("topic","batch",("batch"+1).getBytes());
            msgs.add(message);
            Message message1=new Message("topic","batch",("batch"+2).getBytes());
            msgs.add(message1);
            SendResult sendResult=producer.send(msgs);
            */
        }
        //6.关闭生产者Producer
        producer.shutdown();
    }
}

编写消费者(集群模式和广播模式)

public class Consumer {

    public static void main(String[] args) throws Exception {
        //1.创建消息消费者Consumer,并指定消费者组名
        DefaultMQPushConsumer consumer=new DefaultMQPushConsumer("group1");
        //2.指定nameServer地址
        consumer.setNamesrvAddr("127.0.0.1:9876");
        //3.订阅主题 topic 和tag
        consumer.subscribe("topic","tag");

        //通过setMessageModel设置是集群还是广播模式,模式是集群模式
        //consumer.setMessageModel(MessageModel.BROADCASTING);

        //4.设置回调函数 处理消息
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            //接受消息内容
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
                for(int i=0;i<msgs.size();i++){
                    System.out.println(new String(msgs.get(i).getBody()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        //5.启动Consumer
        consumer.start();
    }
}

源码:https://gitee.com/chenyd/springboot-chen-modules.git
中文文档: https://github.com/apache/rocketmq/blob/master/docs/cn/concept.md

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值