<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot整合RabbitMQ 實現(xiàn)五種消息模型

          共 1081字,需瀏覽 3分鐘

           ·

          2021-01-29 00:38

          點擊上方藍(lán)色字體,選擇“置頂或者星標(biāo)”?


          優(yōu)質(zhì)文章第一時間送達(dá)!


          SpringBoot中使用RabbitMQ

          搭建初始環(huán)境

          引入依賴

          ????
          ????<dependency>
          ????????<groupId>org.springframework.bootgroupId>
          ????????<artifactId>spring-boot-starter-amqpartifactId>
          ????dependency>

          配置配置文件

          server:
          ??port:?9090

          spring:
          ??application:
          ????#?微服務(wù)系統(tǒng)有意義,?養(yǎng)成好習(xí)慣,?先寫出來
          ????name:?rabbitmq-02-springboot
          ??rabbitmq:
          ????host:?127.0.0.1
          ????port:?5672
          ????username:?codingce
          ????password:?123456
          ????virtual-host:?/codingce

          測試類 注入 rabbitTemplate

          ????//?注入?rabbitTemplate
          ????@Autowired
          ????private?RabbitTemplate?rabbitTemplate;

          消息隊列RabbitMQ之五種消息模型

          第一種直連模型使用

          開發(fā)生產(chǎn)者

          ????/**
          ?????*?直連
          ?????*/

          ????@Test
          ????void?contextLoads()?{
          ????????rabbitTemplate.convertAndSend("hello",?"hello?word");
          ????}

          開發(fā)消費者

          /**
          ?*?@author?mxz
          ?*/

          @Component
          @RabbitListener(queuesToDeclare?=?@Queue("hello"))
          public?class?HelloCustomer?{

          ????/**
          ?????*?@param?message
          ?????*/

          ????@RabbitHandler
          ????public?void?receivel(String?message)?{
          ????????System.out.println("message:?"?+?message);
          ????}

          }

          第二種work模型使用

          開發(fā)生產(chǎn)者

          ????/**
          ?????*?work
          ?????*/

          ????@Test
          ????void?testWork()?{
          ????????for?(int?i?=?0;?i?10;?i++)?{
          ????????????rabbitTemplate.convertAndSend("work",?"work模型");
          ????????}
          ????}

          開發(fā)消費者

          /**
          ?*?第二種模型?work?模型
          ?*
          ?*?@author?mxz
          ?*/

          @Component
          public?class?WorkCustomer?{
          ????/**
          ?????*?第1個消費者
          ?????*
          ?????*?@param?message
          ?????*/

          ????@RabbitListener(queuesToDeclare?=?@Queue("work"))
          ????public?void?receivel(String?message)?{
          ????????System.out.println("message1?=?"?+?message);
          ????}

          ????/**
          ?????*?第2個消費者
          ?????*
          ?????*?@param?message
          ?????*/

          ????@RabbitListener(queuesToDeclare?=?@Queue("work"))
          ????public?void?receivel2(String?message)?{
          ????????System.out.println("message2?=?"?+?message);
          ????}
          }

          第三種 Fanout 廣播模型

          開發(fā)生產(chǎn)者

          ????/**
          ?????*?fanout?廣播
          ?????*/

          ????@Test
          ????void?testFanout()?{
          ????????rabbitTemplate.convertAndSend("logs",?"",?"Fanout模型發(fā)送的消息");
          ????}

          開發(fā)消費者

          /**
          ?*?fanout
          ?*
          ?*?@author?mxz
          ?*/

          @Component
          public?class?FanoutCustomer?{

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,??//?創(chuàng)建臨時隊列
          ????????????????????exchange?=?@Exchange(value?=?"logs",?type?=?"fanout")?????//?綁定的交換機
          ????????????)
          ????})
          ????public?void?receivel(String?message)?{
          ????????System.out.println("message1?=?"?+?message);
          ????}

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,??//?創(chuàng)建臨時隊列
          ????????????????????exchange?=?@Exchange(value?=?"logs",?type?=?"fanout")?????//?綁定的交換機
          ????????????)
          ????})
          ????public?void?receive2(String?message)?{
          ????????System.out.println("message2?=?"?+?message);
          ????}
          }

          第四種 Route 路由模型

          開發(fā)生產(chǎn)者

          ????/**
          ?????*?route?路由
          ?????*/

          ????@Test
          ????void?testRoute()?{
          ????????//?exchange?交換機名稱
          ????????rabbitTemplate.convertAndSend("directs",?"info",?"info的key的路由消息");
          ????}

          開發(fā)消費者

          /**
          ?*?@author?mxz
          ?*/

          @Component
          public?class?RouteCustomer?{

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,?//?綁定臨時隊列
          ????????????????????exchange?=?@Exchange(value?=?"directs",?type?=?"direct"),?//?自定義交換機名稱和類型
          ????????????????????key?=?{"info",?"error",?"warn"}
          ????????????)
          ????})
          ????public?void?receivel(String?message)?{
          ????????System.out.println("message1?=?"?+?message);
          ????}

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,?//?綁定臨時隊列
          ????????????????????exchange?=?@Exchange(value?=?"directs",?type?=?"direct"),?//?自定義交換機名稱和類型
          ????????????????????key?=?{"error"}
          ????????????)
          ????})
          ????public?void?receivel2(String?message)?{
          ????????System.out.println("message1?=?"?+?message);
          ????}

          }

          第五種 Topic 訂閱模型(動態(tài)路由模型)

          開發(fā)生產(chǎn)者

          ????/**
          ?????*?topic?訂閱模式?動態(tài)路由
          ?????*/

          ????@Test
          ????void?testTopic()?{
          ????????rabbitTemplate.convertAndSend("topics",?"user.save",?"user.save?路由消息");
          ????}

          開發(fā)消費者

          /**
          ?*?訂閱模型
          ?*
          ?*?@author?mxz
          ?*/

          @Component
          public?class?TopicCustomer?{

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,
          ????????????????????exchange?=?@Exchange(type?=?"topic",?name?=?"topics"),
          ????????????????????key?=?{"user.save",?"user.*"}
          ????????????)
          ????}
          ????)
          ????public?void?receivel(String?message)?{
          ????????System.out.println("message1"?+?message);
          ????}

          ????@RabbitListener(bindings?=?{
          ????????????@QueueBinding(
          ????????????????????value?=?@Queue,
          ????????????????????exchange?=?@Exchange(type?=?"topic",?name?=?"topics"),
          ????????????????????key?=?{"produce.#",?"order.#"}
          ????????????)
          ????}
          ????)
          ????public?void?receivel2(String?message)?{
          ????????System.out.println("message2"?+?message);
          ????}
          }

          文章已上傳gitee https://gitee.com/codingce/hexo-blog
          項目地址github: https://github.com/xzMhehe/codingce-java




          更多推薦內(nèi)容

          ↓↓↓

          Elasticsearch應(yīng)用之京東搜索

          IK分詞器詳解

          30個編程領(lǐng)域的趣圖

          如果你喜歡本文

          請長按二維碼,關(guān)注公眾號

          轉(zhuǎn)發(fā)朋友圈,是對我最大的支持喲

          以上,便是今天的分享,希望大家喜歡,覺得內(nèi)容不錯的,歡迎「分享」「」或者點擊「在看」支持,謝謝各位。

          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品永久免费观看 | 成人视频免费网站 | 色播婷婷丁香五月天 | 操操操操操操逼 | 日本家庭乱伦视频 |