SprinBoot整合RocketMQ

本地倉庫安裝

rocketmq-spring-boot-starter的依賴包是不能直接從中央倉庫下載的,需要自己通過源碼install到本地倉庫的

#源碼地址
https://github.com/apache/rocketmq-spring
#進入源碼目錄,執(zhí)行如下命令
mvn clean install

下載是注意一下版本問題,選擇2.0.0的,不同版本配置不一樣。


image.png

或者百度云
鏈接:https://pan.baidu.com/s/1ngF8qVLRJtcnMZcSMWi_kQ
提取碼:jzd0

這樣說明安裝成功


image.png

編寫application.properties配置文件

spring.application.name = spring-rocketmq
spring.rocketmq.nameServer=192.168.31.150:9876
spring.rocketmq.producer.group=my-group

生產(chǎn)者發(fā)送消息

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

@Component
public class SpringProducer {

    // 注入rocketMQ的模板
    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    /**
     * 發(fā)送消息
     *
     * @param topic
     * @param msg
     */
    public void sendMsg(String topic, String msg) {
        this.rocketMQTemplate.convertAndSend(topic, msg);
    }

}

消費消息

import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

@Component
@RocketMQMessageListener(
        topic = "my-topic",
        consumerGroup = "my-group",
        selectorExpression = "*"
)
public class SpringConsumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String msg) {
        System.out.println("接收到消息 -> " + msg);
    }
}

編寫啟動類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

編寫測試用例

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestSpringRocketMQ {

    @Autowired
    private SpringProducer springProducer;

    @Test
    public void testSendMessage() {
        springProducer.sendMsg("my-topic","為什么不打印");
    }

}

測試

先啟動springboot,再運行測試用例,即可看到消費者接收到生產(chǎn)者發(fā)送的消息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容