中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

SpringBoot中怎么使用RabbitMQ消息組件

這篇文章將為大家詳細(xì)講解有關(guān)SpringBoot中怎么使用RabbitMQ消息組件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),安康企業(yè)網(wǎng)站建設(shè),安康品牌網(wǎng)站建設(shè),網(wǎng)站定制,安康網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,安康網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1 在虛擬機中安裝rabbitmq

SpringBoot中怎么使用RabbitMQ消息組件

2 開啟rabbitmq 

SpringBoot中怎么使用RabbitMQ消息組件 

3 頁面查看rabbitmq SpringBoot中怎么使用RabbitMQ消息組件

3 rabbitmq相關(guān)知識點講解 [1]

MQ全稱為Message Queue, 消息隊列(MQ)是一種應(yīng)用程序?qū)?yīng)用程序的通信方法。MQ是消費-生產(chǎn)者模型的一個典型的代表,一端往消息隊列中不斷寫入消息,而另一端則可以讀取隊列中的消息。

1、隊列、生產(chǎn)者、消費者

隊列:mq內(nèi)部存儲信息的
生產(chǎn)者:產(chǎn)生信息的
消費者:消費消息的

2、Exchange、Binding exchange:交換器,交換按照一定規(guī)則與對列綁定,消息才能到queue中 Binding用routing key

3、Exchange Type有四種

  RabbitMQ常用的Exchange Type有三種:fanout、direct、topic。headers不常用。

  fanout:把所有發(fā)送到該Exchange的消息投遞到所有與它綁定的隊列中。將消息發(fā)送與該exchange綁定的所有的對列,不需要比較路由鍵

  direct:把消息投遞到那些binding key與routing key完全匹配的隊列中。要求路由鍵與對列名完全匹配

  topic:將消息路由到binding key與routing key模式匹配的隊列中。用#匹配0或者多個,*匹配一個

4 下面簡單實現(xiàn)下圖的結(jié)果

SpringBoot中怎么使用RabbitMQ消息組件

1 創(chuàng)建direct類型的交換器

SpringBoot中怎么使用RabbitMQ消息組件

2 創(chuàng)建 fanout類型的交換器 SpringBoot中怎么使用RabbitMQ消息組件

3 創(chuàng)建 topic類型的交換器

SpringBoot中怎么使用RabbitMQ消息組件

4 創(chuàng)建的結(jié)果

SpringBoot中怎么使用RabbitMQ消息組件

5 創(chuàng)建對列,以下圖為例子

SpringBoot中怎么使用RabbitMQ消息組件

隊列創(chuàng)建完成

SpringBoot中怎么使用RabbitMQ消息組件

6 綁定隊列direct類型例子

SpringBoot中怎么使用RabbitMQ消息組件

7 綁定fanout類型的例子

SpringBoot中怎么使用RabbitMQ消息組件

8 綁定topic類型的例子

SpringBoot中怎么使用RabbitMQ消息組件

SpringBoot中怎么使用RabbitMQ消息組件

9 測試direct類型的交換器

SpringBoot中怎么使用RabbitMQ消息組件

測試結(jié)果 SpringBoot中怎么使用RabbitMQ消息組件

10 測試 fanout類型的交換器

SpringBoot中怎么使用RabbitMQ消息組件

測試結(jié)果

SpringBoot中怎么使用RabbitMQ消息組件

11 測試topic 類型的交換器

SpringBoot中怎么使用RabbitMQ消息組件

SpringBoot中怎么使用RabbitMQ消息組件

5 在springBoot項目下使用RabbitMq

pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	 
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.springframework.boot</groupId>
	
    <artifactId>spring-boot-starter-parent</artifactId>
	
    <version>2.1.6.RELEASE</version>
	
    <relativePath/> <!-- lookup parent from repository -->
	
</parent>

<groupId>com.mao</groupId>

<artifactId>spring-01-amqp</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>spring-01-amqp</name>

<description>Demo project for Spring Boot</description>

<properties>

    <java.version>1.8</java.version>
	
</properties>

<dependencies>

    <dependency>
	
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter-amqp</artifactId>
		
    </dependency>
	
    <dependency>
	
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter-web</artifactId>
		
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
		
        <artifactId>spring-boot-starter-test</artifactId>
		
        <scope>test</scope>
		
    </dependency>
	
</dependencies>

<build>
    <plugins>
        <plugin>
		
            <groupId>org.springframework.boot</groupId>
			
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

</project>

applicaton.properties配置

spring.rabbitmq.host=192.168.1.139

spring.datasource.password=guest

spring.datasource.username=guest

book實體

public class book {

private String bookName;

private String author;

public book(String bookName, String author) {

    this.bookName = bookName;
	
    this.author = author;
}

public book() {
}

public String getAuthor() {
    return author;
}

public void setAuthor(String author) {
    this.author = author;
}

public String getBookName() {
    return bookName;
}

public void setBookName(String bookName) {
    this.bookName = bookName;
}

[@Override](https://my.oschina.net/u/1162528)
public String toString() {
    return "book{" +
            "bookName='" + bookName + '\'' +
            ", author='" + author + '\'' +
            '}';
}

}

測試發(fā)送數(shù)據(jù)代碼 @Test public void contextLoads() {

    //message需要自己構(gòu)造一個,定義消息體內(nèi)容和消息頭
	
  //  rabbitTemplate.send(exchange,roteKey,message);
  
    //只需要傳入要發(fā)送的對象,自動序列化發(fā)送給rabbitmq,對象被默認(rèn)序列化后發(fā)送
	
    Map<String,Object> map= new HashMap<>();
	
    map.put("msg","這是第一個消息");
	
    map.put("data", Arrays.asList("hello","wored","rabbitmq"));
	
    rabbitTemplate.convertAndSend("exchange.direct","mao.news",new book("少年","天機"));
}

  /**
 采用廣播的方式
 **/
[@Test](https://my.oschina.net/azibug)
public void senMsg(){

    rabbitTemplate.convertAndSend("exchange.fanout","",new book("少年","落非"));
}

接收數(shù)據(jù)測試

  //接收數(shù)據(jù)
  
[@Test](https://my.oschina.net/azibug)

public void receive(){

    Object o=rabbitTemplate.receiveAndConvert("mao.news");
	
    System.out.println(o.getClass());
	
    System.out.println(o);
	
}
上面測試有個問題,在管理界面顯示的是序列化的數(shù)據(jù)

下面來解決該問題

下面這樣就可以以json格式顯示,與之前的一篇博客類似,配置自定義redis配置

@Configuration

public class myamqpconfig { @Bean public MessageConverter messageConverter(){

    return new Jackson2JsonMessageConverter();
}

}

使用下面的就可以收到消息

@Service

public class BookService {

@RabbitListener(queues = "mao.news")

public  void receive(book book1){

    System.out.println("收到消息:"+book1.toString());
	

}

關(guān)于SpringBoot中怎么使用RabbitMQ消息組件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

新聞標(biāo)題:SpringBoot中怎么使用RabbitMQ消息組件
當(dāng)前網(wǎng)址:http://m.2m8n56k.cn/article26/jdsdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航響應(yīng)式網(wǎng)站網(wǎng)站設(shè)計公司微信公眾號自適應(yīng)網(wǎng)站微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
主站蜘蛛池模板: 国产一级真人毛爱做毛片 | 91免费公开视频 | 国产精品自在欧美一区 | 国产精品hd免费观看 | 亚洲三级a | 中文字幕福利 | 日韩专区亚洲精品欧美专区 | 国产黄色自拍 | 久草在线网址 | 奇米色88欧美一区二区 | 久9青青cao精品视频在线 | 亚洲欧洲日产国码一级毛片 | 欧美特黄一级高清免费的香蕉 | 思思99re| 久久天天躁综合夜夜黑人鲁色 | 久久精品视频日本 | 欧美一级做一级爱a做片性 欧美一欧美一级毛片 | 美女脱了内裤张开腿让男人桶网站 | 成人午夜私人影院入口 | 成人欧美视频在线观看 | 国产日韩欧美一区二区 | 在线免费观看色 | 欧美一级看片a免费观看 | 特级毛片免费视频播放 | 国产精品久久久 | 在线观看一区 | 亚洲综合性 | 中国黄色一级毛片 | 国产专区在线 | 欧美成人看片一区二区三区尤物 | 伊人久久在线视频 | 久草中文在线观看 | 欧美特级午夜一区二区三区 | 深夜福利亚洲 | 成人一a毛片免费视频 | 69性欧美| 久久精品男人的天堂 | 亚洲视频在线一区 | 欧美精品综合一区二区三区 | 国产一区二区三区视频 | 国产成人精品日本亚洲专区6 |