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

RabbitMQ工作模式-主題模式

這篇具有很好參考價(jià)值的文章主要介紹了RabbitMQ工作模式-主題模式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

主題模式

官方文檔參考:https://www.rabbitmq.com/tutorials/tutorial-five-python.html

使用topic類型的交換器,隊(duì)列綁定到交換器、bingingKey時(shí)使用通配符,交換器將消息路由轉(zhuǎn)發(fā)到具體隊(duì)列時(shí),會(huì)根據(jù)消息routingKey模糊匹配,比較靈活。

在Direct類型的交換器做到了根據(jù)日志級(jí)別的不同,將消息發(fā)送給了不同隊(duì)列的。

這里再加入一個(gè)需求,不僅想根據(jù)日志級(jí)別進(jìn)行劃分,還想根據(jù)日志的來源分日志,如何來做呢?

使用topic類型的交換器, routingKey就不能隨便寫了,它必須是點(diǎn)分單詞,單詞可以隨便寫,一般按消息的特征,該點(diǎn)分單詞字符串最長(zhǎng)255字節(jié)。

bindingKey也必須是這種形式。top類型的交換器背后原理跟direct類型類似只要隊(duì)列的bingingkey的值與消息的routingKey的匹配,隊(duì)列就可以收到該消息。有兩個(gè)不同

  1. * (star)匹配一個(gè)單詞。
  2. # 匹配0到多個(gè)單詞。

RabbitMQ工作模式-主題模式,rabbitmq,學(xué)習(xí)筆記,JAVA,java-rabbitmq,java

上報(bào)的數(shù)據(jù)的RoutingKey,格式如下

地區(qū).業(yè)務(wù).日志級(jí)別 如shanghai.busi.INFO 、 hangzhou.line.ERROR

生產(chǎn)者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.nio.charset.StandardCharsets;
import java.util.concurrent.ThreadLocalRandom;

public class Product {

  private static final String[] ADDRESS_ARRAYS = {"shanghai", "suzhou", "hangzhou"};

  private static final String[] BUSI_NAMES = {"product", "user", "schedule"};

  private static final String[] LOG_LEVEL = {"ERROR", "WARN", "INFO"};

  public static void main(String[] args) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri("amqp://root:123456@node1:5672/%2f");

    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    // 定義交換機(jī)
    channel.exchangeDeclare(
        "ex.busi.topic",
        BuiltinExchangeType.TOPIC,
        // 持久化標(biāo)識(shí)
        false,
        // 是否自動(dòng)刪除
        false,
        // 屬性信息
        null);

    for (int i = 0; i < 50; i++) {

      String level = LOG_LEVEL[ThreadLocalRandom.current().nextInt(0, LOG_LEVEL.length)];
      String busiName = BUSI_NAMES[ThreadLocalRandom.current().nextInt(0, BUSI_NAMES.length)];
      String address =
          ADDRESS_ARRAYS[ThreadLocalRandom.current().nextInt(0, ADDRESS_ARRAYS.length)];
      String routingKey = address + "." + busiName + "." + level;

      String pushMsg = "地址[" + address + "],業(yè)務(wù)[" + busiName + "],級(jí)別[" + level + "],消息:" + i;

      channel.basicPublish(
          "ex.busi.topic", routingKey, null, pushMsg.getBytes(StandardCharsets.UTF_8));
    }
  }
}

上海的消費(fèi)者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ThreadLocalRandom;

/**
 * 上海地區(qū)的消費(fèi)都,獲取所有的上海信息
 */
public class ShangHaiConsumer {

  public static void main(String[] args) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri("amqp://root:123456@node1:5672/%2f");

    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    // 定義交換機(jī)
    channel.exchangeDeclare(
        "ex.busi.topic",
        BuiltinExchangeType.TOPIC,
        // 持久化標(biāo)識(shí)
        false,
        // 是否自動(dòng)刪除
        false,
        // 屬性信息
        null);

    // 定義隊(duì)列
    channel.queueDeclare(
        "shanghai.all.log",
        // 持久化存儲(chǔ)
        true,
        // 排他
        false,
        // 自動(dòng)刪除
        true,
        // 屬性
        null);

    // 將隊(duì)列與交換機(jī)進(jìn)行綁定
    channel.queueBind("shanghai.all.log", "ex.busi.topic", "shanghai.#", null);

    channel.basicConsume(
        "shanghai.all.log",
        (consumerTag, message) -> {
          String dataMsg = new String(message.getBody(), StandardCharsets.UTF_8);
          System.out.println("shanghai consumer 收到數(shù)據(jù):" + dataMsg);
        },
        consumerTag -> {});
  }
}

所有錯(cuò)誤日志的消費(fèi)者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.nio.charset.StandardCharsets;

public class ErrorLogConsumer {

  public static void main(String[] args) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri("amqp://root:123456@node1:5672/%2f");

    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    // 定義交換機(jī)
    channel.exchangeDeclare(
        "ex.busi.topic",
        BuiltinExchangeType.TOPIC,
        // 持久化標(biāo)識(shí)
        false,
        // 是否自動(dòng)刪除
        false,
        // 屬性信息
        null);

    // 定義隊(duì)列
    channel.queueDeclare(
        "log.all.error",
        // 持久化存儲(chǔ)
        true,
        // 排他
        false,
        // 自動(dòng)刪除
        true,
        // 屬性
        null);

    // 將隊(duì)列與交換機(jī)進(jìn)行綁定
    channel.queueBind("log.all.error", "ex.busi.topic", "#.ERROR", null);

    channel.basicConsume(
        "log.all.error",
        (consumerTag, message) -> {
          String dataMsg = new String(message.getBody(), StandardCharsets.UTF_8);
          System.out.println("錯(cuò)誤日志 consumer 收到數(shù)據(jù):" + dataMsg);
        },
        consumerTag -> {});
  }
}

蘇州用戶的消費(fèi)者

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.nio.charset.StandardCharsets;

public class SuZhouUserConsumer {

  public static void main(String[] args) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri("amqp://root:123456@node1:5672/%2f");

    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    // 定義交換機(jī)
    channel.exchangeDeclare(
        "ex.busi.topic",
        BuiltinExchangeType.TOPIC,
        // 持久化標(biāo)識(shí)
        false,
        // 是否自動(dòng)刪除
        false,
        // 屬性信息
        null);

    // 定義隊(duì)列
    channel.queueDeclare(
        "suzhou.user.consumer",
        // 持久化存儲(chǔ)
        true,
        // 排他
        false,
        // 自動(dòng)刪除
        true,
        // 屬性
        null);

    // 將隊(duì)列與交換機(jī)進(jìn)行綁定
    channel.queueBind("suzhou.user.consumer", "ex.busi.topic", "suzhou.user.*", null);

    channel.basicConsume(
        "suzhou.user.consumer",
        (consumerTag, message) -> {
          String dataMsg = new String(message.getBody(), StandardCharsets.UTF_8);
          System.out.println("suzhou consumer 收到數(shù)據(jù):" + dataMsg);
        },
        consumerTag -> {});
  }
}

首先啟動(dòng)三個(gè)消費(fèi)者,查看隊(duì)列和交換器的信息

[root@nullnull-os ~]# rabbitmqctl list_exchanges --formatter pretty_table
Listing exchanges for vhost / ...
┌────────────────────┬─────────┐
│ name               │ type    │
├────────────────────┼─────────┤
│ amq.fanout         │ fanout  │
├────────────────────┼─────────┤
│ ex.busi.topic      │ topic   │
├────────────────────┼─────────┤
│ amq.rabbitmq.trace │ topic   │
├────────────────────┼─────────┤
│ amq.headers        │ headers │
├────────────────────┼─────────┤
│ amq.topic          │ topic   │
├────────────────────┼─────────┤
│ amq.direct         │ direct  │
├────────────────────┼─────────┤
│                    │ direct  │
├────────────────────┼─────────┤
│ ex.routing         │ direct  │
├────────────────────┼─────────┤
│ amq.match          │ headers │
└────────────────────┴─────────┘
[root@nullnull-os ~]# rabbitmqctl list_bindings --formatter pretty_table
Listing bindings for vhost /...
┌───────────────┬─────────────┬──────────────────────┬──────────────────┬──────────────────────┬───────────┐
│ source_name   │ source_kind │ destination_name     │ destination_kind │ routing_key          │ arguments │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│               │ exchange    │ suzhou.user.consumer │ queue            │ suzhou.user.consumer │           │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│               │ exchange    │ shanghai.all.log     │ queue            │ shanghai.all.log     │           │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│               │ exchange    │ log.all.error        │ queue            │ log.all.error        │           │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│ ex.busi.topic │ exchange    │ log.all.error        │ queue            │ #.ERROR              │           │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│ ex.busi.topic │ exchange    │ shanghai.all.log     │ queue            │ shanghai.#           │           │
├───────────────┼─────────────┼──────────────────────┼──────────────────┼──────────────────────┼───────────┤
│ ex.busi.topic │ exchange    │ suzhou.user.consumer │ queue            │ suzhou.user.*        │           │
└───────────────┴─────────────┴──────────────────────┴──────────────────┴──────────────────────┴───────────┘
[root@nullnull-os ~]# 

觀察可以發(fā)現(xiàn),此隊(duì)列與消息的綁定已經(jīng)成功。接下使用生產(chǎn)者發(fā)送消息。觀察控制臺(tái)輸出:

錯(cuò)誤日志消費(fèi)者

錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:6
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[product],級(jí)別[ERROR],消息:8
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:10
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:12
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:15
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[hangzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:16
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:17
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:18
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[hangzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:21
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:22
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:24
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[hangzhou],業(yè)務(wù)[product],級(jí)別[ERROR],消息:28
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:33
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[hangzhou],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:39
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:40
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:43
錯(cuò)誤日志 consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:46

上海地區(qū)的消費(fèi)者

shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[WARN],消息:0
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[user],級(jí)別[INFO],消息:1
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[INFO],消息:2
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[WARN],消息:5
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:10
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:12
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:17
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:18
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:22
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[ERROR],消息:24
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[user],級(jí)別[INFO],消息:32
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[INFO],消息:35
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[product],級(jí)別[INFO],消息:38
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[WARN],消息:41
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[schedule],級(jí)別[ERROR],消息:46
shanghai consumer 收到數(shù)據(jù):地址[shanghai],業(yè)務(wù)[user],級(jí)別[INFO],消息:48

蘇州用戶的消費(fèi)者

suzhou consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[WARN],消息:37
suzhou consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:40
suzhou consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[ERROR],消息:43
suzhou consumer 收到數(shù)據(jù):地址[suzhou],業(yè)務(wù)[user],級(jí)別[WARN],消息:45

至此topic模式操作成功。文章來源地址http://www.zghlxwxcb.cn/news/detail-685134.html

到了這里,關(guān)于RabbitMQ工作模式-主題模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 【圖解RabbitMQ-7】圖解RabbitMQ五種隊(duì)列模型(簡(jiǎn)單模型、工作模型、發(fā)布訂閱模型、路由模型、主題模型)及代碼實(shí)現(xiàn)

    【圖解RabbitMQ-7】圖解RabbitMQ五種隊(duì)列模型(簡(jiǎn)單模型、工作模型、發(fā)布訂閱模型、路由模型、主題模型)及代碼實(shí)現(xiàn)

    ?????作者名稱:DaenCode ??作者簡(jiǎn)介:CSDN實(shí)力新星,后端開發(fā)兩年經(jīng)驗(yàn),曾擔(dān)任甲方技術(shù)代表,業(yè)余獨(dú)自創(chuàng)辦智源恩創(chuàng)網(wǎng)絡(luò)科技工作室。會(huì)點(diǎn)點(diǎn)Java相關(guān)技術(shù)棧、帆軟報(bào)表、低代碼平臺(tái)快速開發(fā)。技術(shù)尚淺,閉關(guān)學(xué)習(xí)中······ ??人生感悟:嘗盡人生百味,方知世間冷暖。

    2024年02月07日
    瀏覽(26)
  • RabbitMQ工作模式-工作隊(duì)列

    RabbitMQ工作模式-工作隊(duì)列

    官網(wǎng)關(guān)于工作模式的解釋地址:https://www.rabbitmq.com/getstarted.html Work Queue(工作隊(duì)列) 生產(chǎn)者發(fā)消息,啟動(dòng)多個(gè)消費(fèi)者來消費(fèi)消息,每個(gè)消費(fèi)者僅消費(fèi)部分消息,可達(dá)到負(fù)載均衡的效果。 創(chuàng)建生產(chǎn)者 創(chuàng)建消費(fèi)者 首先運(yùn)行消息費(fèi),為了測(cè)試工作隊(duì)列模式,消費(fèi)都需要啟動(dòng)多個(gè),

    2024年02月10日
    瀏覽(20)
  • RabbitMQ工作模式-路由模式

    RabbitMQ工作模式-路由模式

    官方文檔參考:https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用 direct 類型的Exchange,發(fā)N條消息并使用不同的routingKey,消費(fèi)者定義隊(duì)列并將隊(duì)列 routingKey 、Exchange綁定。此時(shí)使用 direct 模式Exchange必須要 routingKey 完成匹配的情況下消息才會(huì)轉(zhuǎn)發(fā)到對(duì)應(yīng)的隊(duì)列中被消費(fèi)。 樣例使用

    2024年02月10日
    瀏覽(21)
  • RabbitMQ五大常用工作模式

    RabbitMQ五大常用工作模式

    消息生產(chǎn)者 消息消費(fèi)者(會(huì)一直監(jiān)聽隊(duì)列) 工作隊(duì)列 消息生產(chǎn)能力大于消費(fèi)能力,增加多個(gè)消費(fèi)節(jié)點(diǎn) 和簡(jiǎn)單隊(duì)列類似,增加多個(gè)消費(fèi)節(jié)點(diǎn),處于競(jìng)爭(zhēng)關(guān)系 默認(rèn)策略:round robin輪訓(xùn) 生產(chǎn)者 消費(fèi)者1 消費(fèi)者2 輪訓(xùn)策略驗(yàn)證 先啟動(dòng)兩個(gè)消費(fèi)者,再啟動(dòng)生產(chǎn)者 缺點(diǎn):存在部分節(jié)點(diǎn)

    2024年02月19日
    瀏覽(23)
  • RabbitMQ:工作隊(duì)列模式

    RabbitMQ:工作隊(duì)列模式

    ??個(gè)人主頁(yè):不斷前進(jìn)的皮卡丘 ??博客描述:夢(mèng)想也許遙不可及,但重要的是追夢(mèng)的過程,用博客記錄自己的成長(zhǎng),記錄自己一步一步向上攀登的印記 ??個(gè)人專欄:消息中間件 工作隊(duì)列(又名: 任務(wù)隊(duì)列 )背后的主要思想是避免立即執(zhí)行資源密集型任務(wù)并等待其完成。相反

    2024年01月23日
    瀏覽(26)
  • RabbitMQ 工作模式介紹

    RabbitMQ 工作模式介紹

    RabbitMQ 是一個(gè)消息代理:它接受并轉(zhuǎn)發(fā)消息。您可以將其視為郵局:當(dāng)您將要郵寄的郵件放入郵箱時(shí),您可以確定信使最終會(huì)將郵件交付給您的收件人。在這個(gè)類比中,RabbitMQ是一個(gè)郵政信箱,一個(gè)郵局和一個(gè)信件載體。 RabbitMQ 和郵局之間的主要區(qū)別在于它不處理紙張,而是

    2024年02月06日
    瀏覽(55)
  • RabbitMQ的工作模式

    RabbitMQ 的工作模式 一 .simple 模式(即最簡(jiǎn)單的收發(fā)模式) 二 .work 工作模式 ( 資源的競(jìng)爭(zhēng) ) publish_subscribe 發(fā)布訂閱 (../../../../../0 馬士兵 / 新建文件夾 /BAT 面試突擊資料 (1)/ 整理 /BAT 面試突擊資料 /15- 消息中間件 MQ 面試題( 2020 最新 版) .assets/publish_subscribe 發(fā)布訂閱 ( 共享資

    2024年02月06日
    瀏覽(14)
  • 【RabbitMQ】Spring整合RabbitMQ、Spring實(shí)現(xiàn)RabbitMQ五大工作模式(萬字長(zhǎng)文)

    【RabbitMQ】Spring整合RabbitMQ、Spring實(shí)現(xiàn)RabbitMQ五大工作模式(萬字長(zhǎng)文)

    目錄 一、準(zhǔn)備 1、創(chuàng)建maven項(xiàng)目?編輯 2、引入依賴 3、創(chuàng)建配置文件 1.RabbitMQ配置文件 2.生產(chǎn)者項(xiàng)目配置文件 3.消費(fèi)者項(xiàng)目配置文件 二、生產(chǎn)者xml中文件創(chuàng)建隊(duì)列 三、生產(chǎn)者xml文件中創(chuàng)建交換機(jī)以及綁定隊(duì)列 1、創(chuàng)建交換機(jī) 2、綁定隊(duì)列? 四、消費(fèi)者xml文件中創(chuàng)建隊(duì)列消息監(jiān)

    2024年01月21日
    瀏覽(20)
  • SpringBoot 2.2.5 整合RabbitMQ,實(shí)現(xiàn)Topic主題模式的消息發(fā)送及消費(fèi)

    1、simple簡(jiǎn)單模式 消息產(chǎn)生著§將消息放入隊(duì)列 消息的消費(fèi)者(consumer) 監(jiān)聽(while) 消息隊(duì)列,如果隊(duì)列中有消息,就消費(fèi)掉,消息被拿走后,自動(dòng)從隊(duì)列中刪除(隱患 消息可能沒有被消費(fèi)者正確處理,已經(jīng)從隊(duì)列中消失了,造成消息的丟失)應(yīng)用場(chǎng)景:聊天(中間有一個(gè)過度的服務(wù)器;p端,c端

    2024年02月02日
    瀏覽(26)
  • 消息隊(duì)列之RabbitMQ工作模式

    提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動(dòng)添加 消息隊(duì)列之RabbitMQ工作模式 提示:寫完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 在這篇博客中,我將深入探討 RabbitMQ 的工作模式,帶你

    2024年01月18日
    瀏覽(114)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包