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

微服務(wù)中間件--MQ

這篇具有很好參考價(jià)值的文章主要介紹了微服務(wù)中間件--MQ。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

MQ

同步調(diào)用的問題

微服務(wù)間基于Feign的調(diào)用就屬于同步方式,存在一些問題。

  • 耦合度高:每次加入新的需求,都要修改原來的代碼
  • 性能下降:調(diào)用者需要等待服務(wù)提供者響應(yīng),如果調(diào)用鏈過長則響應(yīng)時(shí)間等于每次調(diào)用的時(shí)間之和。
  • 資源浪費(fèi):調(diào)用鏈中的每個(gè)服務(wù)在等待響應(yīng)過程中,不能釋放請求占用的資源,高并發(fā)場景下會極度浪費(fèi)系統(tǒng)資源
  • 級聯(lián)失敗:如果服務(wù)提供者出現(xiàn)問題,所有調(diào)用方都會跟著出問題,如同多米諾骨牌一樣,迅速導(dǎo)致整個(gè)微服務(wù)群故障

異步調(diào)用方案

異步調(diào)用常見實(shí)現(xiàn)就是事件驅(qū)動(dòng)模式

  • 耦合度低
  • 吞吐量提升
  • 故障隔離
  • 流量削峰

異步通信的缺點(diǎn):

  • 依賴于Broker的可靠性、安全性、吞吐能力
  • 架構(gòu)復(fù)雜了,業(yè)務(wù)沒有明顯的流程線,不好追蹤管理

什么是MQ

MQ (MessageQueue),中文是消息隊(duì)列,字面來看就是存放消息的隊(duì)列。也就是事件驅(qū)動(dòng)架構(gòu)中的Broker。

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

a.安裝RabbitMQ

1.在線拉取

docker pull rabbitmq:3-management

2.執(zhí)行下面的命令來運(yùn)行MQ容器:

docker run \
 -e RABBITMQ_DEFAULT_USER=root \
 -e RABBITMQ_DEFAULT_PASS=root \
 --name mq \
 --hostname mq1 \
 -p 15672:15672 \
 -p 5672:5672 \
 -d \
 rabbitmq:3-management

15672 控制臺端口號

5672 消息通信端口

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

RabbitMQ中的幾個(gè)概念:

  • channel:操作MQ的工具
  • exchange:路由消息到隊(duì)列中
  • queue:緩存消息
  • virtual host:虛擬主機(jī),是對queue、exchange等資源的邏輯分組

b.消息模型

MQ的官方文檔中給出了5個(gè)MQ的Demo示例,對應(yīng)了幾種不同的用法:

  • 基本消息隊(duì)列(BasicQueue)
  • 工作消息隊(duì)列(WorkQueue)
  • 發(fā)布訂閱(Publish、Subscribe),又根據(jù)交換機(jī)類型不同分為三種:
    • Fanout Exchange:廣播
    • Direct Exchange:路由
    • Topic Exchange:主題

官方的HelloWorld是基于最基礎(chǔ)的消息隊(duì)列模型來實(shí)現(xiàn)的,只包括三個(gè)角色:

  • publisher:消息發(fā)布者,將消息發(fā)送到隊(duì)列
  • queuequeue:消息隊(duì)列,負(fù)責(zé)接受并緩存消息
  • consumer:訂閱隊(duì)列,處理隊(duì)列中的消息

基本消息隊(duì)列的消息發(fā)送流程:

1.建立connection

2.創(chuàng)建channel

3.利用channel聲明隊(duì)列

4.利用channel向隊(duì)列發(fā)送消息

基本消息隊(duì)列的消息接收流程:

1.建立connection

2.創(chuàng)建channel

3.利用channel聲明隊(duì)列 (避免隊(duì)列不存在,所以雙方都聲明)

4.定義consumer的消費(fèi)行為handleDelivery()

5.利用channel將消費(fèi)者與隊(duì)列綁定

c.SpringAMQP發(fā)送和接收

案例:利用SpringAMQP實(shí)現(xiàn)HelloWorld中的基礎(chǔ)消息隊(duì)列功能

流程如下:

1.在父工程中引入spring-amqp的依賴

<!--AMQP依賴,包含RabbitMQ-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.在publisher中編寫測試方法,向simple.queue發(fā)送消息

  • 在publisher服務(wù)中編寫application.yml,添加mq連接信息:
spring:
  rabbitmq:
    host: 192.168.58.128 # rabbitMq的ip地址
    port: 5672 # 端口
    username: root
    password: root
    virtual-host: /
  • 在publisher服務(wù)中新建一個(gè)測試類,編寫測試方法:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @Test
    public void testSendMessage2SimpleQueue(){
        String queueName = "simple.queue";
        String message = "Hello, spring amqp!";
        rabbitTemplate.convertAndSend(queueName, message);
    }
}

3.在consumer中編寫消費(fèi)邏輯,監(jiān)聽simple.queue

  • 在consumer服務(wù)中編寫application.yml,添加mq連接信息:
spring:
  rabbitmq:
    host: 192.168.58.128
    port: 5672
    username: root
    password: root
    virtual-host: /
  • 在consumer服務(wù)中新建一個(gè)類,編寫消費(fèi)邏輯 (添加監(jiān)聽注解**@RabbitListener**):
@Component
public class SpringRabbitListener {
    @RabbitListener(queues = {"simple.queue"})
    public void listenSimpleQueue(String msg){
        System.out.println("消費(fèi)者接收到simple.queue的消息:【" + msg + "】");
    }
}

d.WorkQueue模型

Work queue,工作隊(duì)列,可以提高消息處理速度,避免隊(duì)列消息堆積

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

案例:模擬WorkQueue,實(shí)現(xiàn)一個(gè)隊(duì)列綁定多個(gè)消費(fèi)者

1.在publisher服務(wù)中定義測試方法,每秒產(chǎn)生50條消息,發(fā)送到simple.queue

@Test
public void testSendMessage2WorkQueue() throws Exception {
    String queueName = "simple.queue";
    String message = "Hello, message__";

    for (int i = 1; i <= 50; i++) {
        rabbitTemplate.convertAndSend(queueName, message + i);
        Thread.sleep(20);
    }
}

2.在consumer服務(wù)中定義兩個(gè)消息監(jiān)聽者,都監(jiān)聽simple.queue隊(duì)列

3.消費(fèi)者1每秒處理50條消息,消費(fèi)者2每秒處理10條消息

@Component
public class SpringRabbitListener {

    @RabbitListener(queues = {"simple.queue"})
    public void listenWorkQueue1(String msg) throws Exception {
        System.out.println("消費(fèi)者1接收到消息:【" + msg + "】" + LocalTime.now());
        Thread.sleep(20);
    }

    @RabbitListener(queues = {"simple.queue"})
    public void listenWorkQueue2(String msg) throws Exception {
        System.out.println("消費(fèi)者2...接收到消息:【" + msg + "】" + LocalTime.now());
        Thread.sleep(200);
    }
}

消費(fèi)預(yù)取限制

修改application.yml文件,設(shè)置preFetch這個(gè)值,可以控制預(yù)取消息的上限:

spring:
  rabbitmq:
    host: 192.168.58.128
    port: 5672
    username: root
    password: root
    virtual-host: /
    listener:
      simple:
        prefetch: 1 # 每次只能獲取一條消息,處理完成才能獲取下一個(gè)消息

可以提高整個(gè)消息隊(duì)列的速度,避免消息堆積

e.發(fā)布訂閱模型

發(fā)布( Publish )、訂閱( Subscribe )

發(fā)布訂閱模式與之前案例的區(qū)別就是允許將同一消息發(fā)送給多個(gè)消費(fèi)者。實(shí)現(xiàn)方式是加入了exchange(交換機(jī))。

常見exchange類型包括:

  • Fanout:廣播
  • Direct:路由
  • Topic:話題

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

注意:exchange負(fù)責(zé)消息路由,而不是存儲,路由失敗則消息丟失

1) FanoutExchange

Fanout Exchange 會將接收到的消息路由給每一個(gè)跟其綁定的queue

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

案例:利用SpringAMQP演示FanoutExchange的使用

1.在consumer服務(wù)中,利用代碼聲明隊(duì)列、交換機(jī),并將兩者綁定

在consumer服務(wù)常見一個(gè)類,添加@Configuration注解,并聲明FanoutExchange、Queue和綁定關(guān)系對象Binding

@Configuration
public class FanoutConfig {
    // abcd.fanout
    @Bean
    public FanoutExchange fanoutExchange(){
        return new FanoutExchange("abcd.fanout");
    }

    // fanout.queue1
    @Bean
    public Queue fanoutQueue1(){
        return new Queue("fanout.queue1");
    }

    // 綁定隊(duì)列1到交換機(jī)
    @Bean
    public Binding fanoutBinding1(Queue fanoutQueue1, FanoutExchange fanoutExchange){
        return BindingBuilder
                .bind(fanoutQueue1)
                .to(fanoutExchange);
    }

    // fanout.queue2
    @Bean
    public Queue fanoutQueue2(){
        return new Queue("fanout.queue2");
    }

    // 綁定隊(duì)列2到交換機(jī)
    @Bean
    public Binding fanoutBinding2(Queue fanoutQueue2, FanoutExchange fanoutExchange){
        return BindingBuilder
                .bind(fanoutQueue2)
                .to(fanoutExchange);
    }
}

2.在consumer服務(wù)中,編寫兩個(gè)消費(fèi)者方法,分別監(jiān)聽fanout.queue1和fanout.queue2

@Component
public class SpringRabbitListener {
    @RabbitListener(queues = {"fanout.queue1"})
    public void listenFanoutQueue1(String msg){
        System.out.println("消費(fèi)者接收到fanout.queue1的消息:【" + msg + "】");
    }

    @RabbitListener(queues = {"fanout.queue2"})
    public void listenFanoutQueue2(String msg){
        System.out.println("消費(fèi)者接收到fanout.queue2的消息:【" + msg + "】");
    }
}

3.在publisher中編寫測試方法,向abcd.fanout發(fā)送消息

@Test
public void testSendFanoutExchange() {
   // 交換機(jī)名稱
   String exchangeName = "abcd.fanout";

   //消息
   String message = "Hello, every one!";

   // 發(fā)送消息: 參數(shù)依次為:交換機(jī)名稱,RoutingKey,消息
   rabbitTemplate.convertAndSend(exchangeName, "", message);
}

2) DirectExchange

Direct Exchange 會將接收到的消息根據(jù)規(guī)則路由到指定的Queue,因此稱為路由模式(routes)。

  • 每一個(gè)Queue都與Exchange設(shè)置一個(gè)BindingKey
  • 發(fā)布者發(fā)送消息時(shí),指定消息的RoutingKey
  • Exchange將消息路由到BindingKey與消息RoutingKey一致的隊(duì)列

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

案例:利用SpringAMQP演示DirectExchange的使用

1.利用@RabbitListener聲明Exchange、Queue、RoutingKey

2.在consumer服務(wù)中,編寫兩個(gè)消費(fèi)者方法,分別監(jiān)聽direct.queue1和direct.queue2

@Component
public class SpringRabbitListener {

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "direct.queue1"),
            exchange = @Exchange(name = "abcd.direct", type = ExchangeTypes.DIRECT),
            key = {"red", "blue"}
    ))
    public void listenDirectQueue1(String msg){
        System.out.println("消費(fèi)者接收到direct.queue1的消息:【" + msg + "】");
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "direct.queue2"),
            exchange = @Exchange(name = "abcd.direct", type = ExchangeTypes.DIRECT),
            key = {"red", "yellow"}
    ))
    public void listenDirectQueue2(String msg){
        System.out.println("消費(fèi)者接收到direct.queue2的消息:【" + msg + "】");
    }
}

3.在publisher中編寫測試方法,向abcd. direct發(fā)送消息

@Test
public void testSendDirectExchange(){
    // 交換機(jī)名稱
    String exchangeName = "abcd.direct";

    // 消息
    String message = "Hello, blue!";

    // 發(fā)送消息,參數(shù)依次為:交換機(jī)名稱,RoutingKey,消息
    rabbitTemplate.convertAndSend(exchangeName, "red", message);
}

3) TopicExchange

TopicExchange與DirectExchange類似,區(qū)別在于routingKey必須是多個(gè)單詞的列表,并且以. 分割。Queue與Exchange指定BindingKey時(shí)可以使用通配符

  • #:代指0個(gè)或多個(gè)單詞
  • *:代指一個(gè)單詞

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

案例:利用SpringAMQP演示TopicExchange的使用

1.利用@RabbitListener聲明Exchange、Queue、RoutingKey

2.在consumer服務(wù)中,編寫兩個(gè)消費(fèi)者方法,分別監(jiān)聽topic.queue1和topic.queue2

@Component
public class SpringRabbitListener {

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "topic.queue1"),
            exchange = @Exchange(name = "abcd.topic", type = ExchangeTypes.TOPIC),
            key = {"china.#"}
    ))
    public void listenTopicQueue1(String msg){
        System.out.println("消費(fèi)者接收到topic.queue1的消息:【" + msg + "】");
    }

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(name = "topic.queue2"),
            exchange = @Exchange(name = "abcd.topic", type = ExchangeTypes.TOPIC),
            key = {"*.news"}
    ))
    public void listenTopicQueue2(String msg){
        System.out.println("消費(fèi)者接收到topic.queue2的消息:【" + msg + "】");
    }
}

3.在publisher中編寫測試方法,向abcd. topic發(fā)送消息

@Test
public void testSendTopicExchange(){
    // 交換機(jī)名稱
    String exchangeName = "abcd.topic";

    // 消息
    String message = "Hello, new!";

    // 發(fā)送消息,參數(shù)依次為:交換機(jī)名稱,RoutingKey,消息
    rabbitTemplate.convertAndSend(exchangeName, "hello.news", message);
}

f.消息轉(zhuǎn)換器

在SpringAMQP的發(fā)送方法中,接收消息的類型是Object,也就是說我們可以發(fā)送任意對象類型的消息,SpringAMQP會幫我們序列化為字節(jié)后發(fā)送。

案列:測試發(fā)送Object類型消息

1.在consumer中利用@Bean聲明一個(gè)隊(duì)列:

@Configuration
public class FanoutConfig {
    @Bean
    public Queue objectQueue() {
        return new Queue("object.queue");
    }
}

2.在publisher中發(fā)送消息以測試:

@Test
public void testSendObjectQueue(){
    Map<String, Object> msg = new HashMap<>();
    msg.put("name", "張三");
    msg.put("age", 21);
    rabbitTemplate.convertAndSend("object.queue", msg);
}

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

消息轉(zhuǎn)換器

Spring的對消息對象的處理是由org.springframework.amqp.support.converter.MessageConverter來處理的。而默認(rèn)實(shí)現(xiàn)是SimpleMessageConverter,基于JDK的ObjectOutputStream完成序列化。如果要修改只需要定義一個(gè)MessageConverter 類型的Bean即可。推薦用JSON方式序列化

1.在publisher服務(wù)引入依賴

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

2.在publisher服務(wù)聲明MessageConverter:

@Bean
public MessageConverter messageConverter(){
    return new Jackson2JsonMessageConverter();
}

微服務(wù)中間件--MQ,微服務(wù)中間件,微服務(wù),中間件,架構(gòu),java,spring cloud

3.在consumer服務(wù)引入Jackson依賴:

  • 與步驟1一樣

4.在consumer服務(wù)定義MessageConverter:

  • 與步驟2一樣

5.定義一個(gè)消費(fèi)者,監(jiān)聽object.queue隊(duì)列并消費(fèi)消息:文章來源地址http://www.zghlxwxcb.cn/news/detail-672603.html

@RabbitListener(queues = "object.queue")
public void listenObjectQueue(Map<String, Object> msg){
    System.out.println("接收到object.queue的消息:" + msg);
}

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

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

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

相關(guān)文章

  • Spring Cloud 項(xiàng)目中實(shí)現(xiàn)推送消息到 RabbitMQ 消息中間件

    Spring Cloud 項(xiàng)目中實(shí)現(xiàn)推送消息到 RabbitMQ 消息中間件

    (注:安裝在虛擬機(jī)則填虛擬機(jī)地址,否則則為本機(jī)地址) 用戶名和密碼都為guest 看到如下頁面則為RabbitMQ安裝登錄成功。 三、依賴注入 導(dǎo)入依賴坐標(biāo) 四、配置yaml文件 配置yaml配置文件 (注:host為地址,如果安裝在虛擬機(jī)則為虛擬機(jī)地址,安裝在本機(jī)則本機(jī)地址。port為端

    2024年04月13日
    瀏覽(25)
  • 實(shí)戰(zhàn):Spring Cloud Stream集成兼容多消息中間件kafka、rabbitmq

    實(shí)戰(zhàn):Spring Cloud Stream集成兼容多消息中間件kafka、rabbitmq

    前面的博文我們介紹并實(shí)戰(zhàn)演示了Spring Cloud Stream整合rabbitmq,其中主要介紹了如何使用和配置完成消息中間件的集成。但是,在實(shí)際的生產(chǎn)環(huán)境中可能會用到多個(gè)消息中間件,又或者是由于業(yè)務(wù)改變需要更換消息中間件,在這些情況下我們的Spring Cloud Stream框架可以完全兼容多

    2024年02月08日
    瀏覽(25)
  • Spring Cloud Alibaba 最新版本(基于Spring Boot 3.1.0)整合完整使用及與各中間件集成

    Spring Cloud Alibaba 最新版本(基于Spring Boot 3.1.0)整合完整使用及與各中間件集成

    目錄 前言 源碼地址 官方中文文檔 使用版本 spring Spring Boot 3.1.0 中間件 使用到的組件與功能 環(huán)境安裝 虛擬機(jī) nexus nacos 集成過程 工程搭建 父工程搭建 子工程 服務(wù)集成 nacos集成 配置文件 服務(wù)注冊與發(fā)現(xiàn)-discovery 服務(wù)注冊 啟動(dòng) 服務(wù)發(fā)現(xiàn) 測試 配置管理-config 新增配置 ?測試

    2024年02月07日
    瀏覽(28)
  • 【消息中間件】詳解mq消息積壓

    【消息中間件】詳解mq消息積壓

    作者簡介 目錄 1.產(chǎn)生原因 2.解決辦法 2.1.事前處理機(jī)制 2.2.事中處理機(jī)制 2.3.事后處理機(jī)制 消息積壓(Message Backlog)指的是在消息隊(duì)列(MQ)系統(tǒng)中等待被處理的消息數(shù)量超過了正常的處理速度,導(dǎo)致消息在隊(duì)列中積壓堆積的情況。 消息積壓的常見表現(xiàn): 系統(tǒng)資源使用率上升

    2024年02月07日
    瀏覽(31)
  • spring cloud 搭建消息中間件 RabbitMQ 環(huán)境、Mac/Windows下載安裝RabbitMQ、配置RabbitMQ環(huán)境變量

    spring cloud 搭建消息中間件 RabbitMQ 環(huán)境、Mac/Windows下載安裝RabbitMQ、配置RabbitMQ環(huán)境變量

    spring boot、spring cloud工程:Mac/Windows下載安裝Erlang、RabbitMQ,并配置環(huán)境變量。 這里學(xué)習(xí)如何安裝 RabbitMQ,因?yàn)檫h(yuǎn)程配置中心的動(dòng)態(tài)更新需要結(jié)合 RabbitMQ 來使用。 這里給出自己下載和使用的百度網(wǎng)盤鏈接:Erlang 版本為25.3.2、RabbitMQ版本為3.12.1 : 鏈接:百度網(wǎng)盤鏈接 提取碼:

    2024年02月15日
    瀏覽(20)
  • 快速掌握MQ消息中間件rabbitmq

    Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denpendies. 需求: 1.video A https://www.bilibili.com/video/BV1cb4y1o7zz?p=12vd_source=533ee415c42b820b0f4105acb4932a02 參考資料 官方文檔 開源社區(qū) 博客文

    2024年02月11日
    瀏覽(28)
  • java后端技術(shù)匯總 + 中間件 + 架構(gòu)思想

    1. 華為OD機(jī)考題 + 答案 2023華為OD統(tǒng)一考試(A+B卷)題庫清單-帶答案(持續(xù)更新) 2023年華為OD真題機(jī)考題庫大全-帶答案(持續(xù)更新) 2. 面試題 一手真實(shí)java面試題:2023年各大公司java面試真題匯總--持續(xù)更新 3. 技術(shù)知識 java后端技術(shù)匯總 + 中間件 + 架構(gòu)思想 類型 難度 Spring、

    2024年02月13日
    瀏覽(28)
  • 【中間件】MQ是什么?RabbitMQ又是什么?

    【中間件】MQ是什么?RabbitMQ又是什么?

    大家好,我是卷心菜。如果您看完這篇文章有所收獲,可以三連支持博主哦~,嘻嘻。 ?? 作者簡介: 在校大學(xué)生一枚,Java領(lǐng)域新星創(chuàng)作者,Java、Python正在學(xué)習(xí)中,期待和大家一起學(xué)習(xí)一起進(jìn)步~ ?? 個(gè)人主頁:我是一棵卷心菜的個(gè)人主頁 ?? 本文專欄:RabbitMQ學(xué)習(xí) ?? 自我提

    2024年02月02日
    瀏覽(29)
  • MQ(消息中間件)概述及 RabbitMQ 的基本介紹

    MQ(消息中間件)概述及 RabbitMQ 的基本介紹

    消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決 應(yīng)用解耦,異步消息,流量削鋒等 問題,實(shí)現(xiàn)高性能,高可用,可伸縮和最終一致性架構(gòu)。流量削鋒 : 削減峰值壓力(秒殺,搶購) MQ(Message Queue,消息隊(duì)列)是典型的生產(chǎn)者、消費(fèi)者模型。生產(chǎn)者不斷向消息隊(duì)列中

    2024年02月12日
    瀏覽(24)
  • 【消息中間件】詳解三大MQ:RabbitMQ、RocketMQ、Kafka

    【消息中間件】詳解三大MQ:RabbitMQ、RocketMQ、Kafka

    作者簡介 前言 博主之前寫過一個(gè)完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,從安裝使用到底層機(jī)制、原理。專欄地址: https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482 本文是該系列的清單綜述,會拉通來聊一下三大MQ的特點(diǎn)和各種適合的場景。 目錄 1.概述 1.1.M

    2024年02月09日
    瀏覽(53)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包