【xxx-mall学习系列-基础框架使用-003】-基于ssm整合RocketMQ

200 阅读1分钟

1. 依赖引入

        <!-- web模块 -->
        <dependency>
            <groupId>com.xxx.basic</groupId>
            <artifactId>xxx-starter-web</artifactId>
        </dependency>

        <!--db-->
        <dependency>
            <groupId>com.xxx.basic</groupId>
            <artifactId>xxx-starter-mybatis-plus</artifactId>
        </dependency>

        <!-- rocketMQ基础组件-->
        <dependency>
            <groupId>com.xxx.basic</groupId>
            <artifactId>xxx-starter-rocketmq</artifactId>
        </dependency>

        <dependency>
            <groupId>com.xxx.basic</groupId>
            <artifactId>xxx-starter-test</artifactId>
        </dependency>

2. 编写单元测试类

1. 消息生产者

package com.xxx.learn.redis;

import com.alibaba.fastjson.JSONObject;
import com.xxx.starter.rocketmq.config.MQProducer;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendResult;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * @author amyzhang
 * @history 2020-09-17 新建
 * @since JDK1.7
 */
@Slf4j
public class RocketMQTest extends BaseTestCase {

    @Autowired
    private MQProducer mqProducer;

    /**
     * 同步消息
     */
    @Test
    public void testSendMsg(){
        String topic = "test";
        String tag = "A";
        String msg = "{\"aaa\":\"bbb\"}";
        for(int i=0;i<100;i++){
            try {
                SendResult sendResult = mqProducer.sendSync(topic, tag, msg, i + "");
                log.info("---------------->{}", JSONObject.toJSONString(sendResult));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

2. 消息消费者

package java.com.xxx.learn.listener;

import com.alibaba.fastjson.JSONObject;
import com.xxx.starter.rocketmq.annotation.MQConsumer;
import com.xxx.starter.rocketmq.base.AbstractMQPushConsumer;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
 * @author amyzhang
 * @history 2020-09-17 新建
 * @since JDK1.7
 */
@Slf4j
@MQConsumer(consumerGroup = "xxx-learn-ssm-rocketmq", topic = "test",tag = "A")
public class MqTestListener extends AbstractMQPushConsumer {


    @Override
    public boolean process(Object o, Map map) {
        log.info("--------------->{},{}", JSONObject.toJSONString(o),JSONObject.toJSONString(map));
        return true;
    }
}

3. 单元测试

启动服务,运行单元测试类,能正常发送消息,消费消息即可