spring整合RocketMQ

1、看官方javademo
https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip
下载下来
spring-rokectmq.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="rocketmqProduct" class="org.apache.rocketmq.client.producer.DefaultMQProducer" init-method="start"
          destroy-method="shutdown">
        <property name="producerGroup" value="producer1"/>
        <property name="namesrvAddr" value="192.168.0.103:9876"/>
    </bean>

    <bean id="consumerSpringListener" class="com.ju.biz.mq.rokectmq.quickstartspring.ConsumerSpringListener" />

    <bean id="rocketmqConsumer" class="org.apache.rocketmq.client.consumer.DefaultMQPushConsumer" init-method="start" destroy-method="shutdown">
        <property name="consumerGroup" value="concurrent_consumer"/>
        <property name="namesrvAddr" value="192.168.0.103:9876"/>
        <property name="messageListener" ref="consumerSpringListener"/>
        <property name="subscription">
            <map>
                <entry key="TopicTest">
                    <value>*</value>
                </entry>
            </map>
        </property>
    </bean>
</beans>

ProducerSpring

package com.ju.biz.mq.rokectmq.quickstartspring;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by tao on 2018/5/24.
 */
public class ProducerSpring {
    public static void main(String[] args) throws InterruptedException {
        ApplicationContext context = new ClassPathXmlApplicationContext("/spring/spring-rokectmq.xml");
        DefaultMQProducer producer = (DefaultMQProducer) context.getBean("rocketmqProduct");
        for (int i = 0; i < 1000; i++) {
            try {

                /*
                 * Create a message instance, specifying topic, tag and message body.
                 */
                Message msg = new Message("TopicTest" /* Topic */,
                        "TagA" /* Tag */,
                        ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
                );

                /*
                 * Call send message to deliver message to one of brokers.
                 */
                SendResult sendResult = producer.send(msg);

                System.out.printf("%s%n", sendResult);
            } catch (Exception e) {
                e.printStackTrace();
                Thread.sleep(1000);
            }
        }
    }
}

ConsumerSpringListener

package com.ju.biz.mq.rokectmq.quickstartspring;

import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;

import java.util.List;

/**
 * Created by tao on 2018/5/24.
 */
public class ConsumerSpringListener implements MessageListenerConcurrently {
    @Override
    public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
            System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs);
            return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
    }
}

猜你喜欢

转载自blog.csdn.net/u014362882/article/details/81142237