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

Spring Boot 中的 RabbitMQ 消息發(fā)送配置

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

Spring Boot 中的 RabbitMQ 消息發(fā)送配置

1. 什么是 RabbitMQ

RabbitMQ 是一個(gè)開(kāi)源的消息代理系統(tǒng),它實(shí)現(xiàn)了 AMQP(高級(jí)消息隊(duì)列協(xié)議)標(biāo)準(zhǔn),并支持多種消息傳輸協(xié)議。它具有高可用性、可擴(kuò)展性和可靠性,廣泛應(yīng)用于分布式系統(tǒng)、微服務(wù)架構(gòu)、異步任務(wù)處理、日志收集等場(chǎng)景。

RabbitMQ 的核心概念包括:

  • Producer:消息生產(chǎn)者,負(fù)責(zé)將消息發(fā)送到 RabbitMQ 服務(wù)器。
  • Exchange:消息交換機(jī),負(fù)責(zé)接收 Producer 發(fā)送的消息,并將其路由到一個(gè)或多個(gè) Queue。
  • Queue:消息隊(duì)列,負(fù)責(zé)存儲(chǔ)消息。
  • Consumer:消息消費(fèi)者,從 Queue 中獲取消息并進(jìn)行處理。
    rabbitmq 發(fā)送消息,Java 教程,spring boot,后端,java

2. Spring Boot 中的 RabbitMQ 自動(dòng)配置

Spring Boot 提供了對(duì) RabbitMQ 的自動(dòng)配置支持,通過(guò)在配置文件中添加以下配置,即可快速集成 RabbitMQ:

spring.rabbitmq.host=your-host
spring.rabbitmq.port=your-port
spring.rabbitmq.username=your-username
spring.rabbitmq.password=your-password

Spring Boot 的 RabbitMQ 自動(dòng)配置會(huì)根據(jù)上述配置創(chuàng)建一個(gè) ConnectionFactory 對(duì)象,并使用 RabbitTemplate 封裝一些常用的 RabbitMQ 操作,例如發(fā)送消息、接收消息等。

在使用 Spring Boot 的 RabbitMQ 自動(dòng)配置時(shí),我們需要添加 RabbitMQ 的依賴(lài):

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

3. RabbitMQ 消息發(fā)送配置

3.1. 發(fā)送消息

在 Spring Boot 中,我們可以使用 RabbitTemplate 來(lái)發(fā)送消息。RabbitTemplate 提供了一個(gè)簡(jiǎn)單的 API,用于發(fā)送消息到 RabbitMQ 服務(wù)器。以下是一個(gè)發(fā)送消息的示例代碼:

@Autowired
private RabbitTemplate rabbitTemplate;

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

在這個(gè)示例中,我們使用 RabbitTemplateconvertAndSend 方法來(lái)發(fā)送消息。其中,exchangeName 表示消息交換機(jī)的名稱(chēng),routingKey 表示消息路由鍵,message 表示要發(fā)送的消息內(nèi)容。

3.2. 消息確認(rèn)

RabbitMQ 提供了消息確認(rèn)機(jī)制,用于確保消息被正確地發(fā)送到 RabbitMQ 服務(wù)器。在 Spring Boot 中,我們可以通過(guò)配置 RabbitTemplate 來(lái)開(kāi)啟消息確認(rèn)機(jī)制。以下是一個(gè)開(kāi)啟消息確認(rèn)機(jī)制的示例代碼:

@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
    RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
    rabbitTemplate.setConfirmCallback((correlationData, ack, cause) -> {
        if (!ack) {
            log.error("Message send failed: {}", cause);
        }
    });
    return rabbitTemplate;
}

在這個(gè)示例中,我們通過(guò)設(shè)置 RabbitTemplateConfirmCallback 來(lái)開(kāi)啟消息確認(rèn)機(jī)制。當(dāng)消息發(fā)送成功時(shí),ConfirmCallbackack 參數(shù)為 true,否則為 false,cause 參數(shù)表示發(fā)送失敗的原因。

3.3. 消息序列化

在 Spring Boot 中,我們可以使用 MessageConverter 來(lái)對(duì)消息進(jìn)行序列化和反序列化。默認(rèn)情況下,Spring Boot 使用 SimpleMessageConverter 對(duì)消息進(jìn)行序列化和反序列化。如果我們需要使用自定義的序列化方式,可以實(shí)現(xiàn) MessageConverter 接口,并將其配置到 RabbitTemplate 中。以下是一個(gè)自定義的消息序列化器的示例代碼:

public class MyMessageConverter implements MessageConverter {
    @Override
    public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException {
        // 將對(duì)象轉(zhuǎn)換為字節(jié)數(shù)組
        byte[] body = new byte[0];
        try {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
            objectOutputStream.writeObject(object);
            objectOutputStream.flush();
            body = byteArrayOutputStream.toByteArray();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 創(chuàng)建 Message 對(duì)象
        Message message = new Message(body, messageProperties);
        return message;
    }

    @Override
    public Object fromMessage(Message message) throws MessageConversionException {
        // 將字節(jié)數(shù)組轉(zhuǎn)換為對(duì)象
        Object object = null;
        try {
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(message.getBody());
            ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
            object = objectInputStream.readObject();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
        return object;
    }
}

@Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
    RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
    rabbitTemplate.setMessageConverter(new MyMessageConverter());
    return rabbitTemplate;
}

在這個(gè)示例中,我們實(shí)現(xiàn)了一個(gè)自定義的消息序列化器 MyMessageConverter,并將其配置到 RabbitTemplate 中。在 MyMessageConverter 中,我們通過(guò)實(shí)現(xiàn) toMessagefromMessage 方法來(lái)對(duì)消息進(jìn)行序列化和反序列化。

4. 總結(jié)

Spring Boot 提供了對(duì) RabbitMQ 的自動(dòng)配置支持,可以幫助我們快速集成 RabbitMQ,并提供一些默認(rèn)的配置,例如連接池、消息確認(rèn)機(jī)制、消息序列化等。在使用 Spring Boot 的 RabbitMQ 自動(dòng)配置時(shí),我們可以使用 RabbitTemplate 來(lái)發(fā)送消息,也可以通過(guò)配置 RabbitTemplate 來(lái)開(kāi)啟消息確認(rèn)機(jī)制和使用自定義的消息序列化器。

如果您正在開(kāi)發(fā)一個(gè)基于 Spring Boot 的應(yīng)用程序,并需要使用 RabbitMQ 來(lái)實(shí)現(xiàn)消息發(fā)送功能,那么 Spring Boot 中的 RabbitMQ 自動(dòng)配置是您的一個(gè)不錯(cuò)的選擇。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-729602.html

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

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(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)文章

  • Spring Boot 整合 RabbitMQ 實(shí)現(xiàn)延遲消息

    Spring Boot 整合 RabbitMQ 實(shí)現(xiàn)延遲消息

    消息隊(duì)列(Message Queuing,簡(jiǎn)寫(xiě)為 MQ)最初是為了解決金融行業(yè)的特定業(yè)務(wù)需求而產(chǎn)生的。慢慢的,MQ 被應(yīng)用到了更多的領(lǐng)域,然而商業(yè) MQ 高昂的價(jià)格讓很多初創(chuàng)公司望而卻步,于是 AMQP(Advanced Message Queuing Protocol,高級(jí)消息隊(duì)列協(xié)議)應(yīng)運(yùn)而生。 隨著 AMQP 草案的發(fā)布,兩個(gè)月

    2024年04月08日
    瀏覽(29)
  • RabbitMQ 消息隊(duì)列(Spring boot AMQP)

    RabbitMQ 消息隊(duì)列(Spring boot AMQP)

    幾種常見(jiàn)MQ的對(duì)比: RabbitMQ ActiveMQ RocketMQ Kafka 公司/社區(qū) Rabbit Apache 阿里 Apache 開(kāi)發(fā)語(yǔ)言 Erlang Java Java ScalaJava 協(xié)議支持 AMQP,XMPP,SMTP,STOMP OpenWire,STOMP,REST,XMPP,AMQP 自定義協(xié)議 自定義協(xié)議 可用性 高 一般 高 高 單機(jī)吞吐量 一般 差 高 非常高 消息延遲 微秒級(jí) 毫秒級(jí) 毫秒級(jí) 毫

    2024年02月13日
    瀏覽(60)
  • Spring Cloud Stream 4.0.4 rabbitmq 發(fā)送消息多function

    Spring Cloud Stream 4.0.4 rabbitmq 發(fā)送消息多function

    注意當(dāng)多個(gè)消費(fèi)者時(shí),需要添加配置項(xiàng):spring.cloud.function.definition 啟動(dòng)日志 交換機(jī)名稱(chēng)對(duì)應(yīng): spring.cloud.stream.bindings.demo-in-0.destination配置項(xiàng)的值 隊(duì)列名稱(chēng)是交換機(jī)名稱(chēng)+分組名 http://localhost:8080/sendMsg?delay=10000name=zhangsan 問(wèn)題總結(jié) 問(wèn)題一 解決辦法: 查看配置是否正確: spring

    2024年02月19日
    瀏覽(22)
  • RabbitMQ可靠性消息發(fā)送(java實(shí)現(xiàn))

    RabbitMQ可靠性消息發(fā)送(java實(shí)現(xiàn))

    本博客屬于 《RabbitMQ基礎(chǔ)組件封裝—整體結(jié)構(gòu)》的子博客 step1:消息落庫(kù),業(yè)務(wù)數(shù)據(jù)存庫(kù)的同時(shí),也要將消息記錄存入數(shù)據(jù)庫(kù),二者要保證原子性; step2:Producer發(fā)送消息到MQ Broker; step3:Producer收到 broker 返回的確認(rèn)消息; step4:更改消息記錄庫(kù)的狀態(tài)(定義三種狀態(tài):0待確

    2024年02月04日
    瀏覽(24)
  • Spring Boot 項(xiàng)目應(yīng)用消息服務(wù)器RabbitMQ(簡(jiǎn)單介紹)

    Spring Boot 項(xiàng)目應(yīng)用消息服務(wù)器RabbitMQ(簡(jiǎn)單介紹)

    本章講述的是在用戶(hù)下單環(huán)節(jié),消息服務(wù)器RabbitMQ 的應(yīng)用 在寫(xiě)一個(gè)電商項(xiàng)目的小demo,在電商項(xiàng)目中,消息服務(wù)器的應(yīng)用: 1、訂單狀態(tài)通知:當(dāng)用戶(hù)下單、支付成功、訂單發(fā)貨、訂單完成等關(guān)鍵節(jié)點(diǎn)時(shí),可以通過(guò)消息服務(wù)器向用戶(hù)發(fā)送相應(yīng)的訂單狀態(tài)通知。 2、消息推送:通

    2024年02月13日
    瀏覽(98)
  • java操作rabbitmq實(shí)現(xiàn)簡(jiǎn)單的消息發(fā)送(socket編程的升級(jí))

    準(zhǔn)備: 1.下載rabbitmq并搭建環(huán)境(和python那篇一樣:http://www.cnblogs.com/g177w/p/8176797.html) 2.下載支持的jar包(http://repo1.maven.org/maven2/com/rabbitmq/amqp-client) 生產(chǎn)者方(Productor.java): View Code 消費(fèi)者方(Consummer.java):

    2023年04月08日
    瀏覽(21)
  • Spring Boot 中的 RabbitMQ 是什么,如何使用

    Spring Boot 中的 RabbitMQ 是什么,如何使用

    RabbitMQ 是一個(gè)開(kāi)源的消息隊(duì)列系統(tǒng),它通過(guò) AMQP(高級(jí)消息隊(duì)列協(xié)議)來(lái)實(shí)現(xiàn)消息的傳遞。Spring Boot 是目前非常流行的 Java 開(kāi)發(fā)框架,它提供了很多便利性的功能,其中就包括對(duì) RabbitMQ 的支持。 在本文中,我們將介紹 RabbitMQ 的基本概念,以及如何在 Spring Boot 中使用 RabbitMQ。

    2024年02月12日
    瀏覽(37)
  • Spring Boot + RabbitMQ 配置參數(shù)解釋

    spring.rabbitmq.host: 服務(wù)Host spring.rabbitmq.port: 服務(wù)端口 spring.rabbitmq.username: 登陸用戶(hù)名 spring.rabbitmq.password: 登陸密碼 spring.rabbitmq.virtual-host: 連接到rabbitMQ的vhost spring.rabbitmq.addresses: 指定client連接到的server的地址,多個(gè)以逗號(hào)分隔(優(yōu)先取addresses,然后再取host) spring.rabbitmq.requested

    2024年01月24日
    瀏覽(17)
  • 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 來(lái)使用。 這里給出自己下載和使用的百度網(wǎng)盤(pán)鏈接:Erlang 版本為25.3.2、RabbitMQ版本為3.12.1 : 鏈接:百度網(wǎng)盤(pán)鏈接 提取碼:

    2024年02月15日
    瀏覽(20)
  • Spring Boot中RabbitMQ自動(dòng)配置的介紹、原理和使用

    Spring Boot中RabbitMQ自動(dòng)配置的介紹、原理和使用

    RabbitMQ是一種高性能的消息隊(duì)列系統(tǒng),它支持多種消息協(xié)議和豐富的功能,如消息路由、消息確認(rèn)、消息重試、死信隊(duì)列等。在Spring Boot中,我們可以通過(guò)自動(dòng)配置的方式來(lái)使用RabbitMQ。本文將介紹Spring Boot中RabbitMQ自動(dòng)配置的介紹、原理和使用方法。 在Spring Boot中,我們可以通

    2024年02月11日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包