spring集成rocketmq

来源:互联网 发布:中国证券市场数据库 编辑:程序博客网 时间:2024/06/08 06:53

spring集成rocketmq

Consume消息监控

package com.ljt.rocketmq;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;public class MessageListenerImpl implements MessageListenerConcurrently {    @Override    public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {        for (MessageExt messageExt : msgs) {            System.out.println(messageExt.toString());            System.out.println( new String(messageExt.getBody()));        }        System.out.println("getDelayLevelWhenNextConsume="+context.getDelayLevelWhenNextConsume()+"getMessageQueue="+context.getMessageQueue().toString()+"getDelayLevelWhenNextConsume="+context.getDelayLevelWhenNextConsume());        return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;    }}

springboot启动脚本和Producer消息发送

package com.ljt.rocketmq;import java.util.HashSet;import java.util.Set;import org.springframework.beans.BeansException;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComponentScan;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.ComponentScan;import org.springframework.scheduling.annotation.EnableScheduling;import com.alibaba.rocketmq.client.exception.MQBrokerException;import com.alibaba.rocketmq.client.exception.MQClientException;import com.alibaba.rocketmq.client.producer.DefaultMQProducer;import com.alibaba.rocketmq.client.producer.SendResult;import com.alibaba.rocketmq.common.message.Message;import com.alibaba.rocketmq.remoting.exception.RemotingException;@SpringBootApplication@EnableScheduling@ComponentScan@EnableAutoConfiguration@ServletComponentScanpublic class Application {    public static ApplicationContext applicationContext;    public static void main(String[] args) throws Exception {        SpringApplication app = new SpringApplication(Application.class);        app.setWebEnvironment(false);        Set<Object> set = new HashSet<Object>();        set.add("classpath:applicationContext.xml");        app.setSources(set);        applicationContext = app.run(args);        send();    }    private static void send() {        try {            DefaultMQProducer defaultMQProducer=(DefaultMQProducer) Application.applicationContext.getBean("rocketmqProduct");            Message msg = new Message("PushTopic", "push", "rocketmq for test.".getBytes());            SendResult result = defaultMQProducer.send(msg);            System.out.println("id:" + result.getMsgId() + " result:" + result.getSendStatus());        } catch (BeansException e) {            e.printStackTrace();        } catch (MQClientException e) {            e.printStackTrace();        } catch (RemotingException e) {            e.printStackTrace();        } catch (MQBrokerException e) {            e.printStackTrace();        } catch (InterruptedException e) {            e.printStackTrace();        }    }}

spring配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"     xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/beans                        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd                        http://www.springframework.org/schema/context                        http://www.springframework.org/schema/context/spring-context-4.2.xsd                        http://www.springframework.org/schema/aop                        http://www.springframework.org/schema/aop/spring-aop-4.2.xsd                        http://www.springframework.org/schema/tx                        http://www.springframework.org/schema/tx/spring-tx-4.2.xsd                        http://www.springframework.org/schema/mvc                         http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"    default-autowire="byName">    <bean id="messageListeners" class="com.sunney.service.impl.MessageListenerImpl"></bean>    <!-- 导入Spring配置文件 -->    <bean id="rocketmqConsumer" class="com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer" init-method="start" destroy-method="shutdown">        <property name="consumerGroup" value="rocketmqConsumer"/>        <property name="namesrvAddr" value="127.0.0.1:9876"/>        <property name="messageListener" ref="messageListeners"/>        <property name="subscription">            <map>                <entry key="PushTopic">                    <value>*</value>                </entry>            </map>        </property>    </bean>    <bean id="rocketmqProduct" class="com.alibaba.rocketmq.client.producer.DefaultMQProducer" init-method="start" destroy-method="shutdown">        <property name="producerGroup" value="rocketmqProduct"/>        <property name="namesrvAddr" value="127.0.0.1:9876"/>    </bean></beans>

pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.rocketmq</groupId>    <artifactId>rocketmq</artifactId>    <version>1.0.0-SNAPSHOT</version>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.3.0.RELEASE</version>    </parent>    <properties>        <java.version>1.7</java.version>        <!-- 依赖版本 -->        <mybatis.version>3.3.1</mybatis.version>        <mybatis.spring.version>1.2.4</mybatis.spring.version>        <!-- Json-lib -->        <json-lib.version>2.4</json-lib.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-aop</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-freemarker</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>1.2.7</version>        </dependency>        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>        </dependency>        <dependency>            <groupId>com.alibaba.rocketmq</groupId>            <artifactId>rocketmq-client</artifactId>            <version>3.2.6</version>        </dependency>    </dependencies>    <build>        <resources>            <resource>                <directory>src/main/resources</directory>                <filtering>true</filtering>            </resource>        </resources>        <plugins>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.3</version>                <configuration>                    <source>1.7</source>                    <target>1.7</target>                </configuration>            </plugin>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <dependencies>                    <dependency>                        <groupId>org.springframework</groupId>                        <artifactId>springloaded</artifactId>                        <version>1.2.5.RELEASE</version>                    </dependency>                </dependencies>            </plugin>        </plugins>    </build></project>

源码地址 https://github.com/ljt000/springboot-rocketmq.git

0 0