前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven项目Spring整合RocketMQ消费者实现

Maven项目Spring整合RocketMQ消费者实现

作者头像
麦克劳林
发布2019-04-22 11:06:21
4.6K0
发布2019-04-22 11:06:21
举报

前言

RocketMQ是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache基金会,已经于2016年11月成为 Apache 孵化项目,相信RocketMQ的未来会发挥着越来越大的作用,将有更多的开发者因此受益。 本文仅对RocketMQ的简单实用做入门性介绍,不对RocketMQ的底层原理进行深入介绍,后续文章将对RocketMQ的原理做详细介绍。

1、RocketMQ的Maven依赖,pom.xml中引入jar包:
代码语言:javascript
复制
<!-- RocketMQ --> 
<dependency>
    <groupId>com.alibaba.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>3.5.8</version>
</dependency>
<dependency>
   <groupId>com.alibaba.rocketmq</groupId>
   <artifactId>rocketmq-all</artifactId>
   <version>3.5.8</version>
   <type>pom</type>
  </dependency>
2、Spring bean 配置单例
代码语言:javascript
复制
<!-- 监听实现 -->
<bean id="rocketMqListener" class="com.rocketMq.service.impl.RocketMqListenerImpl"></bean>
<!-- 监听配置 -->
<bean id="consumer" class="com.rocketMq.utils.Consumer" init-method="init">
    <property name="consumerGroup" value="PushConsumer"/>
    <property name="namesrvAddr" value="192.168.0.1:19876"/>
    <property name="topic" value="node_topic"/>
    <property name="subExpression" value="slu"/>
    <property name="rocketMqListener" ref="rocketMqListener"/>
</bean>  
3、Java源码

1)、RocketMqListener.java

代码语言:javascript
复制
package com.rocketMq.dao;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import com.alibaba.rocketmq.common.message.MessageExt;
 /**
* 消费者监听接口,业务需要实现此接口并配置到Consumer中
* Created by 麦克劳林
*/
public interface RocketMqListener {
boolean RocketMqMessage(MessageExt ext,ConsumeConcurrentlyContext Context);
}

2)、

代码语言:javascript
复制
package com.rocketMq.dao;
import java.util.List;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import com.alibaba.rocketmq.common.message.MessageExt;
/**
 * 监听wrapper,用于处理共通业务,并转发消息到业务监听中。
 * Created by 麦克劳林
 */
public class RocketMqWrapper implements MessageListenerConcurrently{
private RocketMqListener rocketMqListener;
public RocketMqListener getRocketMqMessageListener() {
    return rocketMqListener;
}
public void setRocketMqListener(RocketMqListener rocketMqListener) {
    this.rocketMqListener = rocketMqListener;
}
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> messagesList,ConsumeConcurrentlyContext consumeConcurrentlyContext) {  
        if(ext.getTags().equals("RFID")){
            if(rocketMqListener.RFIDMessage(ext, consumeConcurrentlyContext)){
                 return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            } else{
                return ConsumeConcurrentlyStatus.RECONSUME_LATER;
            }   
    }
}

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 1、RocketMQ的Maven依赖,pom.xml中引入jar包:
      • 2、Spring bean 配置单例
        • 3、Java源码
        相关产品与服务
        消息队列 TDMQ
        消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档