Spring RocketMq操作

Spring中使用RocketMq收发消息,简单记录一下后面熟练使用了再完善一下内容。

1.依赖:

        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <!--版本 https://mvnrepository.com 上对应一下-->
            <version>2.1.0</version>
        </dependency>

2.发送消息

@Component
public class UserInfoProvider {

    @Resource
    private RocketMQTemplate rocketMQTemplate;

    //同步消息
    public void sendSyncMessage(String message) {
        SendResult sendResult = rocketMQTemplate.syncSend("boot:", message);
        log.info("send message body={},result={}", message, sendResult.getSendStatus());
    }

    //异步消息
    public void SendAsyncMessage() {
        List list = new ArrayList();
        list.add("异步消息发送");
        rocketMQTemplate.asyncSend("boot", list, new SendCallback() {
            @Override
            public void onSuccess(SendResult sendResult) {
                //成功回调
                System.out.println(sendResult.getSendStatus());
            }
            @Override
            public void onException(Throwable e) {
                //异常回调
                System.out.println(e.getMessage());
            }
        });
    }
}

3.消费消息

@Component
@RocketMQMessageListener(
        //topic主题
        topic = "boot",
        //consumerGroup消费者组
        consumerGroup = "pm-service"
)
public class UserInfoConsume implements RocketMQListener<MessageExt>, RocketMQPushConsumerLifecycleListener {

    @Override
    public void onMessage(MessageExt messageExt) {
        System.out.println("hello消费消息"+new String(messageExt.getBody()));
    }

    @Override
    public void prepareStart(DefaultMQPushConsumer defaultMQPushConsumer) {
        //时间间隔
        defaultMQPushConsumer.setPullInterval(2000);
        // 设置每次从队列中拉取的消息数为16
        defaultMQPushConsumer.setPullBatchSize(16);
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值