Spring Boot集成RabbitMQ

timg.jpg
  1. 安裝
    下面是有Windows和Linux不同系統(tǒng)下的詳細安裝步驟宪摧,這了不再做介紹
    安裝步驟

    這里需要注意RabbitMQ默認服務的端口是5672,管理RabbitMQ的WEBUI默認端口為15672。

  2. AMQP

    即Advanced Message Queuing Protocol,一個提供統(tǒng)一消息服務的應用 層標準高級消息隊列協(xié)議,是應用層協(xié)議的一個開放標準,為面向消息的中間 件設計闽撤∑眩基于此協(xié)議的客戶端與消息中間件可傳遞消息

    以上是百度百科的介紹,
    AMQP主要是為解耦瞬哼,生產(chǎn)者不用知道接收者是誰,同理租副,接收者也不用知道生產(chǎn)者是誰坐慰,可靠,安全用僧。

  3. RabbitMQ
    是AMQP中的一個開源的實現(xiàn)结胀。使用Erlang語言開發(fā)赞咙,所以我安裝RabbitMQ需要配置Erlang環(huán)境,

  • 為什么使用RabbitMQ

    20170816171523564.jpg

    綜合選擇RabbitMQ

  1. 原理
    消息隊列一般有三個概念:

    • 生產(chǎn)者
    • 隊列
    • 消費者
      顧名思義相信大家都可以理解
      而RabbitMQ在此基礎(chǔ)上添加了一層交換器抽象層糟港,
      當你想要將消息投遞到隊列時攀操,你通過把消息發(fā)送給交換器來完成。然后秸抚,根據(jù)確定的規(guī)則速和,RabbitMQ將會決定消息該投遞到哪個隊列,這些規(guī)則被稱為路由鍵(routing key)剥汤。隊列通過路由鍵綁定到交換器颠放,當你把消息發(fā)送到代理服務器時,消息將擁有一個路由鍵(即使是空的)
      Rabbit也會將其和綁定使用的路由鍵進行匹配吭敢,如果匹配的話碰凶,那么消息將會投遞到隊列,如果路由的消息不匹配任何綁定模式的話鹿驼,消息將進入“黑洞”
    RabbitMQ運行原理.png
  2. 交換器有四種類型

  • Direct: 先匹配痒留,在投送,
  • Topic: 按照特定的規(guī)則匹配
  • Headers: 按照自定義規(guī)則匹配
  • Fanout: 全部隊列匹配

實操上代碼

  1. AMQP依賴包
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

  1. application.properties中配置
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
  1. 隊列配置
@Configuration
public class RabbitConfig {
    @Bean
    public Queue aQueue(){
        return new Queue("hello");
    }
    @Bean
    public Queue bQueue(){
        return new Queue("helloB");
    }

}

多個隊列在此列中照例加就可以

  1. 消息生產(chǎn)者
@Component
public class HelloSender {

      //Spring boot 提供的默認實現(xiàn)
    @Autowired
    private AmqpTemplate amqpTemplate;

    public void send() {
        String context = "hello" + new Date();
        System.out.println("sender: " + context);
        //使用默認實現(xiàn)發(fā)送消息
        this.amqpTemplate.convertAndSend("hello", context);
    }

}
  1. 接收者
@Component
@RabbitListener(queues = "hello")
public class HelloRec {

    @RabbitHandler
    public void process(String hello){
        System.out.println("rec:" + hello);
    }

}
  1. 測試
@RunWith(SpringRunner.class)
@SpringBootTest
public class BootRabbitmqApplicationTests {

    @Autowired
    private HelloSender helloSender;

    @Test
    public void contextLoads() {
        helloSender.send();
    }

}

注意:

QQ截圖20170919231013.png

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蠢沿,隨后出現(xiàn)的幾起案子伸头,更是在濱河造成了極大的恐慌,老刑警劉巖舷蟀,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恤磷,死亡現(xiàn)場離奇詭異,居然都是意外死亡野宜,警方通過查閱死者的電腦和手機扫步,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匈子,“玉大人河胎,你說我怎么就攤上這事』⒍兀” “怎么了游岳?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長其徙。 經(jīng)常有香客問我胚迫,道長,這世上最難降的妖魔是什么唾那? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任访锻,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘期犬。我一直安慰自己河哑,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布龟虎。 她就那樣靜靜地躺著灾馒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遣总。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天轨功,我揣著相機與錄音旭斥,去河邊找鬼。 笑死古涧,一個胖子當著我的面吹牛垂券,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羡滑,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼菇爪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柒昏?” 一聲冷哼從身側(cè)響起凳宙,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎职祷,沒想到半個月后氏涩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡有梆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年是尖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泥耀。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡饺汹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痰催,到底是詐尸還是另有隱情兜辞,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布夸溶,位于F島的核電站弦疮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蜘醋。R本人自食惡果不足惜胁塞,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啸罢,春花似錦编检、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至衩匣,卻和暖如春蕾总,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琅捏。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工生百, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柄延。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓蚀浆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親搜吧。 傳聞我的和親對象是個殘疾皇子市俊,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)滤奈,斷路器摆昧,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • RabbitMQ作為AMQP的代表性產(chǎn)品,在項目中大量使用蜒程。結(jié)合現(xiàn)在主流的spring boot据忘,極大簡化了開發(fā)過...
    SamHxm閱讀 26,178評論 6 19
  • 來源 RabbitMQ是用Erlang實現(xiàn)的一個高并發(fā)高可靠AMQP消息隊列服務器。支持消息的持久化搞糕、事務勇吊、擁塞控...
    jiangmo閱讀 10,344評論 2 34
  • AMQP大致內(nèi)容就是,將消息和隊列綁定起來窍仰,規(guī)定讓進入到交換機中的具有某個路由鍵的消息進入到指定隊列中去汉规。 Rab...
    StevenMD閱讀 1,850評論 0 3
  • RabbitMQ簡介 RabbitMQ是一個在AMQP基礎(chǔ)上完整的,可復用的企業(yè)消息系統(tǒng)MQ全稱為Message ...
    Raye閱讀 5,227評論 7 13