Springboot利用AmqpTemplate整合Rabbitmq

上一篇 <<<Rabbitmq如何保證消息不丟失
下一篇 >>>Rabbitmq如何保證冪等性


1.注意點

a床绪、隊列綁定的key必須和@bean時的方法名一致才可以自動識別
b、隊列和交換機會自動生成

2.核心代碼

2.1 依賴包引入

<!-- 添加springboot對amqp的支持 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.2 配置信息

spring:
  rabbitmq:
    ####連接地址
    host: 10.211.55.16
    ####端口號
    port: 5672
    ####賬號
    username: jarye
    ####密碼
    password: 123456
    ### 地址
    virtual-host: /mytest1205

2.3 bean初始化

@Component
public class RabbitMQConfig {
    /**
     * 定義交換機
     */
    private String EXCHANGE_SPRINGBOOT_NAME = "springboot_topic_exchange";

    /**
     * 短信隊列
     */
    private String FANOUT_SMS_QUEUE = "springboot_topic_sms_queue";
    /**
     * 郵件隊列
     */
    private String FANOUT_SMS_EMAIL = "springboot_topic_email_queue";

    /**
     * 創(chuàng)建短信隊列
     */
    @Bean
    public Queue smsQueue() {
        return new Queue(FANOUT_SMS_QUEUE);
    }

    /**
     * 創(chuàng)建郵件隊列
     */
    @Bean
    public Queue emailQueue() {
        return new Queue(FANOUT_SMS_EMAIL);
    }

    /**
     * 創(chuàng)建交換機
     *
     * @return
     */
    @Bean
    public TopicExchange topicExchange() {
        return new TopicExchange(EXCHANGE_SPRINGBOOT_NAME);
    }

    /**
     * 定義短信隊列綁定交換機
     */
    @Bean
    public Binding smsBindingExchange(Queue smsQueue, TopicExchange topicExchange) {
        return BindingBuilder.bind(smsQueue).to(topicExchange).with("my.sms");
    }

    /**
     * 定義郵件隊列綁定交換機
     */
    @Bean
    public Binding emailBindingExchange(Queue emailQueue, TopicExchange topicExchange) {
        return BindingBuilder.bind(emailQueue).to(topicExchange).with("my.#");
    }
}

2.4 生產(chǎn)者

@RestController
public class FanoutProducer {
    @Autowired
    private AmqpTemplate amqpTemplate;

    @RequestMapping("/sendMsg")
    public String sendMsg(String msg) {
        // 參數(shù)1 交換機名稱 筹淫、參數(shù)2路由key  參數(shù)3 消息
        amqpTemplate.convertAndSend("springboot_topic_exchange", "my.time", msg);
        return "success";
    }
}

2.5 消費者

@Component
@RabbitListener(queues = "springboot_topic_email_queue")
public class FanoutEmailConsumer {

    @RabbitHandler
    public void consumer(String msg){
        System.out.println("郵件消費者收到消息:"+msg);
    }
}
@Component
@RabbitListener(queues = "springboot_topic_sms_queue")
public class FanoutSmsConsumer {

    @RabbitHandler
    public void consumer(String msg){
        System.out.println("短信消費者收到消息:"+msg);
    }
}

推薦閱讀:
<<<消息中間件的核心思想
<<<消息中間件常見問題匯總
<<<基于Netty簡單手寫消息中間件思路
<<<消息隊列常用名詞與中間件對比
<<<Rabbitmq基礎(chǔ)知識
<<<Rabbitmq示例之點對點簡單隊列
<<<Rabbitmq示例之工作(公平)隊列
<<<Rabbitmq示例之發(fā)布訂閱模式
<<<Rabbitmq示例之路由模式Routing
<<<Rabbitmq示例之通配符模式Topics
<<<Rabbitmq示例之RPC模式
<<<Rabbitmq隊列模式總結(jié)
<<<Rabbitmq如何保證消息不丟失
<<<Rabbitmq如何保證冪等性
<<<Rabbitmq的重試策略
<<<Rabbitmq通過死信隊列實現(xiàn)過期監(jiān)聽
<<<Rabbitmq解決分布式事務(wù)思路
<<<Rabbitmq解決分布式事務(wù)demo
<<<Rabbitmq環(huán)境安裝
<<<Kafka中的專業(yè)術(shù)語都有哪些
<<<Kafka的設(shè)計原理介紹
<<<Kafka集群如何實現(xiàn)相互感知
<<<Kafka如何實現(xiàn)分區(qū)及指定分區(qū)消費
<<<Kafka如何保證消息順序消費
<<<Kafka如何保證高吞吐量
<<<Kafka集群環(huán)境搭建
<<<RocketMQ架構(gòu)原理
<<<RocketMQ张足、RabbitMQ和Kafka的對比
<<<SpringBoot整合RocketMQ示例
<<<RocketMQ保證順序消費demo
<<<RocketMQ如何動態(tài)擴容和縮容
<<<RocketMQ如何解決分布式事務(wù)
<<<RocketMQ單機版本安裝
<<<RocketMQ集群環(huán)境程序啟用相關(guān)知識點
<<<RocketMQ單機做主備實操
<<<RocketMQ所有配置說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末负甸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌面哼,老刑警劉巖隘马,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件太防,死亡現(xiàn)場離奇詭異,居然都是意外死亡酸员,警方通過查閱死者的電腦和手機蜒车,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幔嗦,“玉大人酿愧,你說我怎么就攤上這事⊙” “怎么了寓娩?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呼渣。 經(jīng)常有香客問我棘伴,道長,這世上最難降的妖魔是什么屁置? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任焊夸,我火速辦了婚禮,結(jié)果婚禮上蓝角,老公的妹妹穿的比我還像新娘阱穗。我一直安慰自己饭冬,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布揪阶。 她就那樣靜靜地躺著昌抠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲁僚。 梳的紋絲不亂的頭發(fā)上炊苫,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音冰沙,去河邊找鬼侨艾。 笑死,一個胖子當(dāng)著我的面吹牛拓挥,可吹牛的內(nèi)容都是我干的唠梨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼侥啤,長吁一口氣:“原來是場噩夢啊……” “哼当叭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盖灸,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蚁鳖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后糠雨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體才睹,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年甘邀,在試婚紗的時候發(fā)現(xiàn)自己被綠了琅攘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡松邪,死狀恐怖坞琴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逗抑,我是刑警寧澤剧辐,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站邮府,受9級特大地震影響荧关,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褂傀,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一忍啤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仙辟,春花似錦同波、人聲如沸鳄梅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戴尸。三九已至,卻和暖如春冤狡,著一層夾襖步出監(jiān)牢的瞬間孙蒙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工筒溃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留马篮,地道東北人沾乘。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓怜奖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翅阵。 傳聞我的和親對象是個殘疾皇子歪玲,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容