国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

「中間件」rabbitmq 消息隊(duì)列基礎(chǔ)知識(shí)

這篇具有很好參考價(jià)值的文章主要介紹了「中間件」rabbitmq 消息隊(duì)列基礎(chǔ)知識(shí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

基本概念

RabbitMQ是一個(gè)消息隊(duì)列軟件,用于在應(yīng)用程序之間轉(zhuǎn)發(fā)消息。以下是RabbitMQ的基本概念:

  1. 消息:RabbitMQ中的消息是傳遞的基本單位,它由消息頭和消息體組成。

  2. 隊(duì)列(Queue):隊(duì)列是消息的緩沖區(qū),用于存儲(chǔ)待處理的消息。

  3. 交換器(Exchange):交換器是接收生產(chǎn)者發(fā)送的消息并將其路由到一個(gè)或多個(gè)隊(duì)列的組件。

  4. 路由鍵(Routing Key):用于確定消息將被路由到哪個(gè)隊(duì)列。

  5. 綁定(Binding):綁定用于將隊(duì)列與交換器關(guān)聯(lián)起來(lái)。

  6. 生產(chǎn)者(Producer):生產(chǎn)者是指向RabbitMQ發(fā)送消息的應(yīng)用程序。

  7. 消費(fèi)者(Consumer):消費(fèi)者是從RabbitMQ接收并處理消息的應(yīng)用程序。

  8. 消費(fèi)組(Consumer Group):相同的隊(duì)列可以有多個(gè)消費(fèi)組,每個(gè)消費(fèi)組可以同時(shí)消費(fèi)該隊(duì)列中的消息。

  9. ACK:當(dāng)消費(fèi)者成功處理一條消息時(shí),它會(huì)發(fā)送一個(gè)ACK給RabbitMQ,通知RabbitMQ該消息已被處理。如果消費(fèi)者無(wú)法處理消息,則可以拒絕消息,或者將消息重新放入隊(duì)列。

紙上得來(lái)終覺(jué)淺,絕知此事要躬行

那么怎么用springboot 和RabbitMQ向指定用戶發(fā)送通知,后端又是如何生產(chǎn)消息和如何消費(fèi)消息呢。

1. 首先需要在Spring Boot中引入RabbitMQ的依賴:

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

RabbitMQ的配置:

@Configuration
public class RabbitMQConfig {
    @Bean
    public Queue queue() {
        return new Queue("queueName");
    }

    @Bean
    public TopicExchange topicExchange() {
        return new TopicExchange("exchangeName");
    }

    @Bean
    public Binding binding(Queue queue, TopicExchange topicExchange) {
        return BindingBuilder.bind(queue).to(topicExchange).with("routingKey");
    }

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
        connectionFactory.setUsername("guest");
        connectionFactory.setPassword("guest");
        return connectionFactory;
    }

    @Bean
    public RabbitTemplate rabbitTemplate() {
        return new RabbitTemplate(connectionFactory());
    }
}

2. 生產(chǎn)消息的代碼:

@Autowired
private RabbitTemplate rabbitTemplate;

public void sendMessage(String message, String userId) {
    rabbitTemplate.convertAndSend("exchangeName", "routingKey." + userId, message);
}

3. 消費(fèi)消息的代碼:

@RabbitListener(queues = "queueName")
public void receiveMessage(String message) {
    // 處理消息
}

在消費(fèi)消息時(shí)可以根據(jù)消息中的userId來(lái)判斷是否是當(dāng)前用戶需要處理的消息,如果是再進(jìn)行處理。

小結(jié)

總之,RabbitMQ提供了一個(gè)靈活和可靠的消息傳遞機(jī)制,使得應(yīng)用程序能夠快速響應(yīng)和處理來(lái)自其他應(yīng)用程序的消息。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-727220.html

到了這里,關(guān)于「中間件」rabbitmq 消息隊(duì)列基礎(chǔ)知識(shí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 消息隊(duì)列中間件 - Docker安裝RabbitMQ、AMQP協(xié)議、和主要角色

    消息隊(duì)列中間件 - Docker安裝RabbitMQ、AMQP協(xié)議、和主要角色

    不管是微服務(wù)還是分布式的系統(tǒng)架構(gòu)中,消息隊(duì)列中間件都是不可缺少的一個(gè)重要環(huán)節(jié),主流的消息隊(duì)列中間件有RabbitMQ、RocketMQ等等,從這篇開(kāi)始詳細(xì)介紹以RabbitMQ為代表的消息隊(duì)列中間件。 AMQP協(xié)議 AMQP協(xié)議是一個(gè)提供統(tǒng)一消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)協(xié)議,基于此協(xié)議的客戶端與

    2024年02月03日
    瀏覽(92)
  • 基于golang多消息隊(duì)列中間件的封裝nsq,rabbitmq,kafka

    場(chǎng)景 在創(chuàng)建個(gè)人的公共方法庫(kù)中有這樣一個(gè)需求,就是不同的項(xiàng)目會(huì)用到不同的消息隊(duì)列中間件,我的思路把所有的消息隊(duì)列中間件進(jìn)行封裝一個(gè)消息隊(duì)列接口(MQer)有兩個(gè)方法一個(gè)生產(chǎn)一個(gè)消費(fèi),那么在實(shí)例化對(duì)象的時(shí)候根據(jù)配置文件指定當(dāng)前項(xiàng)目使用的那個(gè)消息隊(duì)列中

    2024年02月14日
    瀏覽(93)
  • 消息隊(duì)列中間件,RabbitMQ的使用,死信隊(duì)列,延遲隊(duì)列,利用枚舉實(shí)現(xiàn)隊(duì)列,交換機(jī),RountKey的聲明

    消息隊(duì)列中間件,RabbitMQ的使用,死信隊(duì)列,延遲隊(duì)列,利用枚舉實(shí)現(xiàn)隊(duì)列,交換機(jī),RountKey的聲明

    目錄 0.交換機(jī)種類和區(qū)別 1.聲明隊(duì)列和交換機(jī)以及RountKey 2.初始化循環(huán)綁定 3.聲明交換機(jī) 4.監(jiān)聽(tīng)隊(duì)列 4.1 監(jiān)聽(tīng)普通隊(duì)列 4.2監(jiān)聽(tīng)死信隊(duì)列 ?5.削峰填谷的實(shí)現(xiàn) Direct Exchange(直連交換機(jī)) : 直連交換機(jī)將消息發(fā)送到與消息的路由鍵完全匹配的隊(duì)列。它是最簡(jiǎn)單的交換機(jī)類型之一。

    2024年04月23日
    瀏覽(585)
  • 利用消息中間件RabbitMQ創(chuàng)建隊(duì)列以及扇出(Fanout)、訂閱(Direct)、主題(Topic)交換機(jī)來(lái)完成消息的發(fā)送和監(jiān)聽(tīng)接收(完整版)

    利用消息中間件RabbitMQ創(chuàng)建隊(duì)列以及扇出(Fanout)、訂閱(Direct)、主題(Topic)交換機(jī)來(lái)完成消息的發(fā)送和監(jiān)聽(tīng)接收(完整版)

    目錄 一、前期項(xiàng)目環(huán)境準(zhǔn)備 1.1父項(xiàng)目以及子項(xiàng)目 1.2配置pom.xml 1.3配置application.yml 二、扇出(Fanout)?交換機(jī)實(shí)現(xiàn)消息的發(fā)送和接收 2.1編寫(xiě)子項(xiàng)目consumer(消費(fèi)者,接收消息)的代碼實(shí)現(xiàn)扇出(Fanout)交換機(jī)接收消息 2.1.1consumer子項(xiàng)目結(jié)構(gòu) 2.1.2FanoutConfig類的實(shí)現(xiàn)扇出(Fanout)交

    2024年02月05日
    瀏覽(95)
  • 消息隊(duì)列中間件(一)

    消息隊(duì)列中間件(一)

    流量削峰 應(yīng)用解耦 異步處理 ActiveMQ 優(yōu):?jiǎn)螜C(jī)吞吐萬(wàn)級(jí),時(shí)效性ms級(jí),可用性高(主從架構(gòu)),可靠性高(丟失率低) 缺:官方維護(hù)少,高吞吐場(chǎng)景較少使用 Kafka 大數(shù)據(jù) - 數(shù)據(jù)采集,傳輸,存儲(chǔ) 優(yōu):高吞吐量(百萬(wàn)級(jí)),時(shí)效性ms級(jí),可用性高,日志成熟 缺:短輪詢,失敗

    2024年02月11日
    瀏覽(86)
  • 消息隊(duì)列中間件介紹

    消息隊(duì)列中間件介紹

    消息隊(duì)列介紹 ? 消息隊(duì)列中間件是大型系統(tǒng)中的重要組件,已經(jīng)逐漸成為企業(yè)系統(tǒng)內(nèi)部通信的核心手段。它具有松耦合、異步消息、流量削峰、可靠投遞、廣播、流量控制、最終一致性等一系列功能,已經(jīng)成為異步RPC的主要手段之一。 目前常見(jiàn)的消息中間件有ActiveMQ、Rabbi

    2024年02月04日
    瀏覽(98)
  • 消息隊(duì)列(中間件)

    消息隊(duì)列(中間件)

    通信協(xié)議: 為了實(shí)現(xiàn)客戶端和服務(wù)器之間的通信來(lái)完成的邏輯,基于TCP實(shí)現(xiàn)的自定義應(yīng)用層協(xié)議。通過(guò)這個(gè)協(xié)議,完成客戶端–服務(wù)器遠(yuǎn)程方法調(diào)用。 序列化/反序列化: 通過(guò)網(wǎng)絡(luò)傳輸對(duì)象把對(duì)象存儲(chǔ)到硬盤上。 序列化:把對(duì)象轉(zhuǎn)化為二進(jìn)制的數(shù)據(jù)序列,反序列化:把二進(jìn)制數(shù)

    2024年02月07日
    瀏覽(102)
  • RabbitMQ消息中間件

    RabbitMQ消息中間件 RabbitMQ簡(jiǎn)介 windows下安裝RabbitMQ RabbitMQ基本概念 RabbitMQ簡(jiǎn)單模式 RabbitMQ工作隊(duì)列模式 RabbitMQ發(fā)布訂閱模式 RabbitMQ路由模式 RabbitMQ主題模式 RabbitMQ RPC模式 RabbitMQ發(fā)布確認(rèn)模式

    2024年02月10日
    瀏覽(103)
  • 消息中間件RabbitMQ

    消息中間件RabbitMQ

    1.1.1. 什么是MQ MQ(message queue) ,從字面意思上看,本質(zhì)是個(gè)隊(duì)列,F(xiàn)IFO 先入先出,只不過(guò)隊(duì)列中存放的內(nèi)容是message 而已,還是一種跨進(jìn)程的通信機(jī)制,用于上下游傳遞消息。在互聯(lián)網(wǎng)架構(gòu)中,MQ 是一種非常常見(jiàn)的上下游“邏輯解耦+物理解耦”的消息通信服務(wù)。使用了 MQ 之后,

    2024年01月17日
    瀏覽(103)
  • 消息中間件之RabbitMQ

    消息中間件之RabbitMQ

    1.基于AMQP協(xié)議Erlang語(yǔ)言開(kāi)發(fā)的一款消息中間件,客戶端語(yǔ)言支持比較多, 比如Python,Java,Ruby,PHP,JS,Swift.運(yùn)維簡(jiǎn)單,靈活路由,但是性能不高, 可以滿足一般場(chǎng)景下的業(yè)務(wù)需要,三高場(chǎng)景下吞吐量不高,消息持久化沒(méi)有采取 零拷貝技術(shù),消息堆積時(shí),性能會(huì)下降 2.消息吞吐量在

    2024年01月19日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包