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

在Spring Cloud中使用RabbitMQ完成一個(gè)消息驅(qū)動(dòng)的微服務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了在Spring Cloud中使用RabbitMQ完成一個(gè)消息驅(qū)動(dòng)的微服務(wù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Spring Cloud系列目前已經(jīng)有了Spring Cloud五大核心組件:分別是,Eureka注冊(cè)中心,Zuul網(wǎng)關(guān),Hystrix熔斷降級(jí),openFeign聲明式遠(yuǎn)程調(diào)用,ribbon負(fù)載均衡。這五個(gè)模塊,對(duì)了,有沒(méi)有發(fā)現(xiàn),其實(shí)我這五個(gè)模塊中ribbon好像還沒(méi)有案例例舉,目前只有一個(gè)Ribbon模塊的搭建,后邊我會(huì)完善的。

今天我們不主要圍繞Spring Cloud的五大組件,本篇會(huì)以新的模塊進(jìn)行,完成一個(gè)以Rabbit MQ消息隊(duì)列為核心的模塊功能設(shè)計(jì)。在模塊進(jìn)行之前,我們先了解Spring Cloud 的Stream,這個(gè)很重要。

Spring Cloud Steam 是一個(gè)可以用來(lái)作為微服務(wù)應(yīng)用構(gòu)建消息驅(qū)動(dòng)能力的框架,他可以基于Spring Boot來(lái)進(jìn)行創(chuàng)建一個(gè)獨(dú)立的,并且可以用來(lái)生產(chǎn)的Spring 應(yīng)用程序。他通過(guò)使用Spring Integration(一體化)來(lái)鏈接消息嗲了中間件用以實(shí)現(xiàn)消息事件驅(qū)動(dòng)的微服務(wù)應(yīng)用。Spring Cloud Stream 為一些供應(yīng)商的消息中間件產(chǎn)品提供了個(gè)性化的自動(dòng)裝配的實(shí)現(xiàn),并且熟悉Spring的都知道他有個(gè)發(fā)布-訂閱模式,消費(fèi)組,以及消息分區(qū)核心部分。

Spring Cloud Stream本質(zhì)上就是整合了Spring Boot和Spring Integration,實(shí)現(xiàn)了一套輕量級(jí)的消息驅(qū)動(dòng)的微服務(wù)框架。通過(guò)使用Spring Cloud Stream,可以有效地簡(jiǎn)化開(kāi)發(fā)人員對(duì)消息中間件的使用復(fù)雜度,讓系統(tǒng)開(kāi)發(fā)人員可以有更多的精力關(guān)注于核心業(yè)務(wù)邏輯的處理。由于Spring Cloud Stream基于Spring Boot實(shí)現(xiàn),所以它秉承了Spring Boot的優(yōu)點(diǎn)。

  • Binder:Binder是Spring Cloud Stream的核心組件之一,它提供了與消息中間件的連接和交互。通過(guò)Binder,開(kāi)發(fā)者可以將應(yīng)用程序與特定的消息中間件進(jìn)行集成,而無(wú)需關(guān)注底層的細(xì)節(jié)。

  • 消息通道:Spring Cloud Stream使用消息通道作為應(yīng)用程序中消息的傳輸媒介。消息通道可以是發(fā)布-訂閱模式或點(diǎn)對(duì)點(diǎn)模式,開(kāi)發(fā)者可以根據(jù)需求選擇合適的通道類型。

  • 綁定注解:通過(guò)使用綁定注解,開(kāi)發(fā)者可以將消息通道與應(yīng)用程序中的方法進(jìn)行綁定。例如,@Input注解用于將方法綁定到輸入通道,@Output注解用于將方法綁定到輸出通道。

  • 消息轉(zhuǎn)換:Spring Cloud Stream支持自動(dòng)的消息轉(zhuǎn)換,使得開(kāi)發(fā)者可以使用不同的數(shù)據(jù)格式和協(xié)議進(jìn)行消息的傳輸。它提供了一些內(nèi)置的消息轉(zhuǎn)換器,同時(shí)也支持自定義的消息轉(zhuǎn)換器。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>

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

在應(yīng)用程序中配置Rabbit MQ的鏈接信息,在application.yml或者application.properties中添加配置。

spring.cloud.stream.bindings.input.destination=myInputQueue
spring.cloud.stream.bindings.output.destination=myOutputQueue

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

這里的myInputQueue和myOutputQueue是你自定義的隊(duì)列名稱,你可以根據(jù)自己的需求進(jìn)行命名。

接下來(lái),創(chuàng)建一個(gè)消息處理器來(lái)處理輸入和輸出的消息。你可以使用@StreamListener注解來(lái)監(jiān)聽(tīng)輸入消息,并使用@EnableBinding注解來(lái)綁定輸入和輸出通道。

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;

@EnableBinding(Sink.class)
public class MessageProcessor {

    @StreamListener(Sink.INPUT)
    public void processMessage(String message) {
        // 處理輸入消息
        System.out.println("Received message: " + message);
        
        // 處理完后可以發(fā)送輸出消息
        // output.send(MessageBuilder.withPayload("Output message").build());
    }
}

@EnableBinding(Sink.class)將輸入通道綁定到Sink,@StreamListener(Sink.INPUT)注解用于監(jiān)聽(tīng)輸入消息。你可以在processMessage方法中處理輸入消息。

如果你想發(fā)送輸出消息,你可以注入MessageChannel并使用它發(fā)送消息。例如,你可以在MessageProcessor類中注入MessageChannel

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.support.MessageBuilder;

@EnableBinding(Source.class)
public class MessageProcessor {

    private final MessageChannel output;

    @Autowired
    public MessageProcessor(Source source) {
        this.output = source.output();
    }

    @StreamListener(Sink.INPUT)
    public void processMessage(String message) {
        // 處理輸入消息
        System.out.println("Received message: " + message);
        
        // 處理完后發(fā)送輸出消息
        output.send(MessageBuilder.withPayload("Output message").build());
    }
}

這樣,當(dāng)有消息發(fā)送到輸入通道時(shí),processMessage方法將被調(diào)用,并處理輸入消息。在處理完輸入消息后,它將發(fā)送一個(gè)輸出消息到輸出通道。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766869.html

到了這里,關(guān)于在Spring Cloud中使用RabbitMQ完成一個(gè)消息驅(qū)動(dòng)的微服務(wù)的文章就介紹完了。如果您還想了解更多內(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)文章

  • 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)
  • 實(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)境中可能會(huì)用到多個(gè)消息中間件,又或者是由于業(yè)務(wù)改變需要更換消息中間件,在這些情況下我們的Spring Cloud Stream框架可以完全兼容多

    2024年02月08日
    瀏覽(25)
  • 【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驅(qū)動(dòng)架構(gòu)(MDA)解析,實(shí)現(xiàn)異步處理與解耦合!

    【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驅(qū)動(dòng)架構(gòu)(MDA)解析,實(shí)現(xiàn)異步處理與解耦合!

    ???? 歡迎光臨,終于等到你啦 ???? ??我是 蘇澤 ,一位對(duì)技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 《Spring 狂野之旅:從入門(mén)到入魔》 ?? 本專欄帶你從Spring入門(mén)到入魔 ? 這是蘇澤的個(gè)人主頁(yè)可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.

    2024年03月10日
    瀏覽(29)
  • Spring cloud stream 結(jié)合 rabbitMq使用

    之前的開(kāi)發(fā)主要是底層開(kāi)發(fā),沒(méi)有深入涉及到消息方面。現(xiàn)在面對(duì)的是一個(gè)這樣的場(chǎng)景: 假設(shè)公司項(xiàng)目A用了RabbitMQ,而項(xiàng)目B用了Kafka。這時(shí)候就會(huì)出現(xiàn)有兩個(gè)消息框架,這兩個(gè)消息框架可能編碼有所不同,且結(jié)構(gòu)也有所不同,而且之前甚至可能使用的是別的框架,造成了一個(gè)

    2024年02月04日
    瀏覽(23)
  • Springboot實(shí)戰(zhàn)16 消息驅(qū)動(dòng):如何使用 RabbitTemplate 集成 RabbitMQ?

    15 講我們介紹了基于 ActiveMQ 和 JmsTemplate 實(shí)現(xiàn)消息發(fā)送和消費(fèi),并重構(gòu)了 SpringCSS 案例系統(tǒng)中的 account-service 和 customer-service 服務(wù)。 今天,我們將介紹另一款主流的消息中間件 RabbitMQ,并基于 RabbitTemplate 模板工具類為 SpringCSS 案例添加對(duì)應(yīng)的消息通信機(jī)制。 AMQP 規(guī)范與 RabbitM

    2024年02月02日
    瀏覽(30)
  • Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)

    ??歡迎來(lái)到架構(gòu)設(shè)計(jì)專欄~Spring Cloud Gateway:打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān) ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁(yè):IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限

    2024年02月08日
    瀏覽(92)
  • 構(gòu)建彈性可擴(kuò)展的微服務(wù)架構(gòu):基于Spring Cloud Alibaba 的實(shí)踐

    構(gòu)建彈性可擴(kuò)展的微服務(wù)架構(gòu):基于Spring Cloud Alibaba 的實(shí)踐

    ?? 個(gè)人網(wǎng)站:【工具大全】【游戲大全】【神級(jí)源碼資源網(wǎng)】 ?? 前端學(xué)習(xí)課程:??【28個(gè)案例趣學(xué)前端】【400個(gè)JS面試題】 ?? 尋找學(xué)習(xí)交流、摸魚(yú)劃水的小伙伴,請(qǐng)點(diǎn)擊【摸魚(yú)學(xué)習(xí)交流群】 隨著互聯(lián)網(wǎng)業(yè)務(wù)的不斷發(fā)展,傳統(tǒng)的單體應(yīng)用逐漸無(wú)法滿足日益復(fù)雜的業(yè)務(wù)需求和

    2024年02月14日
    瀏覽(1877)
  • 構(gòu)建高可用、高并發(fā)和高性能的微服務(wù)系統(tǒng)(Spring Cloud實(shí)現(xiàn))

    構(gòu)建高可用、高并發(fā)和高性能的微服務(wù)系統(tǒng)(Spring Cloud實(shí)現(xiàn))

    目前Java都在流行一個(gè)說(shuō)詞:高并發(fā)。 反正不管是不是,反正就是高并發(fā)。 談高并發(fā),我們需要知道幾個(gè)名詞: -響應(yīng)時(shí)間(Response Time,RT) -吞吐量(Throughput) -每秒查詢率QPS(Query Per Second) -每秒事務(wù)處理量TPS(Transaction Per Second) -同時(shí)在線用戶數(shù)量 整體來(lái)說(shuō)高并發(fā)的技術(shù)很多,但是

    2024年02月13日
    瀏覽(98)
  • 【Spring云原生系列】Spring RabbitMQ:異步處理機(jī)制的基礎(chǔ)--消息隊(duì)列 原理講解+使用教程

    【Spring云原生系列】Spring RabbitMQ:異步處理機(jī)制的基礎(chǔ)--消息隊(duì)列 原理講解+使用教程

    ???? 歡迎光臨,終于等到你啦 ???? ??我是 蘇澤 ,一位對(duì)技術(shù)充滿熱情的探索者和分享者。???? ??持續(xù)更新的專欄 《Spring 狂野之旅:從入門(mén)到入魔》 ?? 本專欄帶你從Spring入門(mén)到入魔 ? 這是蘇澤的個(gè)人主頁(yè)可以看到我其他的內(nèi)容哦???? 努力的蘇澤 http://suzee.blog.

    2024年03月15日
    瀏覽(30)
  • Spring Boot 中的 RabbitMQ 的消息接收配置是什么,原理,如何使用

    Spring Boot 中的 RabbitMQ 的消息接收配置是什么,原理,如何使用

    RabbitMQ 是一個(gè)流行的消息隊(duì)列系統(tǒng),它可以用于在應(yīng)用程序之間傳遞消息。Spring Boot 提供了對(duì) RabbitMQ 的支持,我們可以使用 Spring Boot 中的 RabbitMQ 消息接收配置來(lái)接收 RabbitMQ 中的消息。本文將介紹 RabbitMQ 的消息接收配置的原理和如何在 Spring Boot 中使用它。 在 RabbitMQ 中,消

    2024年02月13日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包