日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Stream幫你無感知切換消息中間件

來源: 責編: 時間:2024-01-24 09:02:56 301觀看
導讀哈嘍,大家好,我是了不起。在實際的企業開發中,消息中間件是至關重要的組件之一。如常見的RabbitMQ和Kafka,這些中間件的差異性導致我們實際項目開發給我們造成了一定的困擾,這時候 Spring Cloud Stream 給我們提供了一種解

哈嘍,大家好,我是了不起。bgA28資訊網——每日最新資訊28at.com

在實際的企業開發中,消息中間件是至關重要的組件之一。如常見的RabbitMQ和Kafka,這些中間件的差異性導致我們實際項目開發給我們造成了一定的困擾,這時候 Spring Cloud Stream 給我們提供了一種解耦合的方式。bgA28資訊網——每日最新資訊28at.com

簡介

Spring Cloud Stream 由一個中間件中立的核組成。bgA28資訊網——每日最新資訊28at.com

應用通過 Spring Cloud Stream 插入的Input(相當于消費者Consumer,它是從隊列中接收消息的)和Output(相當于生產者Producer,它是從隊列中發送消息的。)通道與外界交流。bgA28資訊網——每日最新資訊28at.com

通道通過指定中間件的Binder實現與外部代理連接。bgA28資訊網——每日最新資訊28at.com

業務開發者不再關注具體消息中間件,只需關注Binder對應用程序提供的抽象概念來使用消息中間件實現業務即可。bgA28資訊網——每日最新資訊28at.com

詳細介紹

核心概念

Spring Cloud Stream 為各大消息中間件產品提供了個性化的自動化配置實現,引用了發布-訂閱、消費組、分區的三個核心概念。bgA28資訊網——每日最新資訊28at.com

Spring Cloud Stream 提供了很多抽象和基礎組件來簡化消息驅動型微服務應用。包含以下內容:bgA28資訊網——每日最新資訊28at.com

  • Spring Cloud Stream的應用模型
  • 綁定抽象
  • 持久化發布/訂閱支持
  • 消費者組支持
  • 分片支持(Partitioning Support)
  • 可插拔API

應用模型

Spring Cloud Stream由一個中立的中間件內核組成。Spring Cloud Stream會注入輸入和輸出的channels,應用程序通過這些channels與外界通信,而channels則是通過一個明確的中間件Binder與外部brokers連接。bgA28資訊網——每日最新資訊28at.com

圖片圖片bgA28資訊網——每日最新資訊28at.com

各大消息中間件的綁定抽象

Spring Cloud Stream 提供對Kafka、Rabbit MQ、Redis、Gemfire的Binder實現。Spring Cloud Stream還包括了一個TestSupportBinder、TestSupportBinder預留一個未更改的channel以便于直接地、可靠地和channels通信。bgA28資訊網——每日最新資訊28at.com

分區支持

分區在有狀態處理中是一個很重要的概念,其重要性體現在性能和一致性上,要確保所有相關數據被一并處理,例如,在時間窗平均計算的例子中,給定傳感器測量結果應該都由同一應用實例進行計算。bgA28資訊網——每日最新資訊28at.com

Spring Cloud Stream支持在一個應用程序的多個實例之間數據分區,在分區的情況下,物理通信介質(例如,topic代理)被視為多分區結構。一個或多個生產者應用程序實例將數據發送給多個消費應用實例,并保證共同的特性的數據由相同的消費者實例處理。bgA28資訊網——每日最新資訊28at.com

Spring Cloud Stream 提供了一個通用的抽象,用于統一方式進行分區處理,因此分區可以用于自帶分區的代理(如Kafka)或者不帶分區的代理(如RabbieMQ)bgA28資訊網——每日最新資訊28at.com

編程模型

Spring Cloud Stream 提供了一些預定義的注解,用于綁定輸入和輸出channels,以及如何監聽channels。bgA28資訊網——每日最新資訊28at.com

通過@EnableBinding觸發綁定

將@EnableBinding注解添加到應用的配置類,就可以把一個spring應用轉換成Spring Cloud Stream應用,@EnableBinding注解本身就包含@Configuration注解,會觸發Spring Cloud Stream 基本配置。bgA28資訊網——每日最新資訊28at.com

@Import(...)@Configuration@EnableIntegrationpublic @interface EnableBinding {    ...    Class<?>[] value() default {};}

@Input 與 @Output

一個Spring Cloud Stream應用可以有任意數目的input和output通道,后者通過@Input和@Output注解在接口中定義。bgA28資訊網——每日最新資訊28at.com

@StreamListener

定義在方法中,被修飾的方法注冊為消息中間件上數據流的事件監聽器,注解中屬性值對應了監聽的消息通道名。bgA28資訊網——每日最新資訊28at.com

Source、Sink和Processor

Spring Cloud Stream提供了三個開箱即用的預定義接口。bgA28資訊網——每日最新資訊28at.com

  • Source用于有單個輸出(outbound)通道的應用。
public interface Source {  String OUTPUT = "output";  @Output(Source.OUTPUT)  MessageChannel output();}
  • Sink用于有單個輸入(inbound)通道的應用。
public interface Sink {  String INPUT = "input";  @Input(Sink.INPUT)  SubscribableChannel input();}
  • Processor用于單個應用同時包含輸入和輸出通道的情況。
public interface Processor extends Source, Sink {}

極簡實例

下面是一個非常簡單的 SpringBootApplication應用,通過依賴Spring Cloud Stream,從Input通道監聽消息然后返回應答到Output通道,只要添加配置文件就可以應用。bgA28資訊網——每日最新資訊28at.com

@SpringBootApplication@EnableBinding(Processor.class)public class ServiceApplication {    public static void main(String[] args) {        SpringApplication.run(MyLoggerServiceApplication.class, args);    }    @StreamListener(Processor.INPUT)    @SendTo(Processor.OUTPUT)    public LogMessage enrichLogMessage(LogMessage log) {        return new LogMessage(String.format("[1]: %s", log.getMessage()));    }}

下面解釋下這個示例中相關注解的應用:bgA28資訊網——每日最新資訊28at.com

  • @EnableBinding聲明了這個應用程序綁定了2個通道:INPUT和OUTPUT。這2個通道是在接口Processor中定義的(Spring Cloud Stream默認設置)。所有通道都是配置在一個具體的消息中間件或綁定器中。
  • @StreamListener(Processor.INPUT)表明這里在input中提取消息,并且處理。
  • @SendTo(Processor.OUTPUT)表明在output中返回消息。

其他特性

消息發送失敗的處理

消息發送失敗后悔發送到默認的一個“topic.errors"的channel中(topic是配置的destination)。要配置消息發送失敗的處理,需要將錯誤消息的channel打開。bgA28資訊網——每日最新資訊28at.com

消費者配置如下bgA28資訊網——每日最新資訊28at.com

spring:  application:    name: spring-cloud-stream-producer  cloud:    stream:      rocketmq:        binder:          name-server: 127.0.0.1:9876        bindings:          output:            producer:              group: test              sync: true      bindings:        output:          destination: stream-test-topic          content-type: text/plain # 內容格式。這里使用 JSON          producer:            errorChannelEnabled: true

在啟動類中配置錯誤消息的Channel信息bgA28資訊網——每日最新資訊28at.com

@Bean("stream-test-topic.errors")MessageChannel testoutPutErrorChannel(){    return new PublishSubscribeChannel();}

新建異常處理servicebgA28資訊網——每日最新資訊28at.com

import org.springframework.integration.annotation.ServiceActivator;import org.springframework.messaging.Message;import org.springframework.stereotype.Service;@Servicepublic class ErrorProducerService {    @ServiceActivator(inputChannel = "stream-test-topic.errors")    public void receiveProducerError(Message message){        System.out.println("receive error msg :"+message);    }}

當發生異常時,由于測試類中已經將異常捕獲,處理發送異常主要是在這里進行。bgA28資訊網——每日最新資訊28at.com

總結

這篇文章根據 Spring Cloud Stream 的官方文檔,對Stream做了一個整體的介紹,包括設計目標,應用場景,業務模型以及對外開放的注解,希望大家能夠學以致用。bgA28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-66963-0.htmlStream幫你無感知切換消息中間件

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python中最常用的十個內置函數!

下一篇: Ubuntu大佬神操作!Rust版Linux調度器秀麻了,性能遠超C!

標簽:
  • 熱門焦點
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • 一文看懂為蘋果Vision Pro開發應用程序

    譯者 | 布加迪審校 | 重樓蘋果的Vision Pro是一款混合現實(MR)頭戴設備。Vision Pro結合了虛擬現實(VR)和增強現實(AR)的沉浸感。其高分辨率顯示屏、先進的傳感器和強大的處理能力
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛。現在,我們就開始今
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 消費結構調整丨巨頭低價博弈,拼多多還卷得動嗎?

    來源:征探財經作者:陳香羽隨著流量紅利的退潮,電商的存量博弈越來越明顯。曾經主攻中高端與品質的淘寶天貓、京東重拾&ldquo;低價&rdquo;口號。而過去與他們錯位競爭的拼多多,靠
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • iQOO Neo8系列或定檔5月23日:首發天璣9200+ 安卓跑分王者

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • 外交部:美方應停止在網絡安全問題上不負責任地指責他國

      中國外交部今天(16日)舉行例行記者會。會上,有記者問,美國情報官員稱,他們正在阻攔來自中國以及其他國家的黑客獲取相關科研成果。 中方對此有何評論?對此
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲日本国产| 欧美日韩国产综合久久| 亚洲在线不卡| 亚洲制服欧美中文字幕中文字幕| 亚洲女人小视频在线观看| 午夜在线一区二区| 久久综合久久综合久久综合| 欧美精品国产一区二区| 国产精品伦子伦免费视频| 国内精品美女av在线播放| 亚洲国产精品一区在线观看不卡 | 国产一区二区看久久| 黄色成人在线| 99re6这里只有精品| 午夜精品成人在线| 免费观看日韩| 国产精品久久久久久久app| 黑人巨大精品欧美一区二区| 亚洲精品日韩欧美| 亚洲在线成人| 欧美国产日产韩国视频| 国产精品极品美女粉嫩高清在线 | 欧美另类视频| 国产三级欧美三级日产三级99| 亚洲国产小视频在线观看| 亚洲淫片在线视频| 欧美+亚洲+精品+三区| 国产精品女人网站| 一区二区三区在线看| 亚洲午夜av| 久久亚洲精品视频| 国产精品免费网站在线观看| 影院欧美亚洲| 亚洲欧美日韩爽爽影院| 欧美激情精品久久久久久蜜臀| 国产欧美精品在线| 99人久久精品视频最新地址| 久久免费视频网| 国产精品入口| 亚洲肉体裸体xxxx137| 午夜一区在线| 欧美性猛交一区二区三区精品| 激情久久综合| 亚欧成人精品| 欧美视频在线一区| 亚洲激情一区二区| 久久久.com| 国产欧美高清| 亚洲午夜av| 欧美日韩综合视频网址| 亚洲日本成人网| 老牛国产精品一区的观看方式| 国产欧美一区二区精品仙草咪| 99在线|亚洲一区二区| 韩国av一区| 亚洲欧美日本日韩| 欧美日韩亚洲综合在线| 亚洲韩国日本中文字幕| 久久女同精品一区二区| 国产亚洲毛片| 午夜精品视频一区| 国产精品qvod| 一区二区激情小说| 欧美日本国产视频| 91久久在线播放| 久热精品在线视频| 一区二区视频欧美| 久久精品亚洲乱码伦伦中文 | 日韩网站在线观看| 欧美成人一二三| 亚洲福利视频免费观看| 久久久综合网站| 黑丝一区二区三区| 久久综合色88| 亚洲福利在线视频| 蜜臀久久久99精品久久久久久| 精品动漫3d一区二区三区| 久久精品麻豆| 精品99视频| 免费高清在线视频一区·| 亚洲国产经典视频| 欧美成人有码| 亚洲免费电影在线| 欧美日韩视频在线一区二区观看视频 | 国产精品免费观看视频| 亚洲小视频在线| 国产精品扒开腿做爽爽爽软件| 一二三区精品| 国产精品二区影院| 午夜久久99| 国产一区91精品张津瑜| 久久精品中文| 有码中文亚洲精品| 欧美成人在线免费观看| 亚洲美女诱惑| 国产精品高清网站| 香蕉久久夜色精品国产| 国产自产精品| 毛片av中文字幕一区二区| 亚洲精品123区| 欧美日韩一区二区三区免费看| 亚洲欧美国产精品专区久久| 国产精品伊人日日| 久久激五月天综合精品| 在线精品一区| 欧美精品成人在线| 亚洲午夜影视影院在线观看| 国产欧美在线视频| 老司机凹凸av亚洲导航| 日韩一级免费观看| 国产伦精品一区二区三区免费 | 亚洲婷婷综合色高清在线| 国产精品亚洲а∨天堂免在线| 久久国产精品黑丝| 亚洲国产精品一区二区第一页| 欧美激情精品久久久久久久变态 | 精品动漫3d一区二区三区| 欧美国产高潮xxxx1819| 亚洲午夜国产成人av电影男同| 国产欧美另类| 欧美mv日韩mv国产网站app| 亚洲天堂av高清| 国内久久精品| 欧美精品在线观看| 亚洲免费影视| 在线看片一区| 国产精品久在线观看| 久久综合给合| 中文国产一区| 伊人婷婷久久| 欧美三区在线视频| 久久人人爽人人| 日韩视频免费| 国产在线精品二区| 欧美日韩国产色视频| 欧美一区二区三区在线视频| 91久久精品久久国产性色也91| 国产精品性做久久久久久| 美女精品国产| 亚洲影院在线| 91久久国产综合久久91精品网站| 国产精品剧情在线亚洲| 免费观看成人| 先锋影音久久久| 亚洲精品综合久久中文字幕| 国产亚洲欧美日韩在线一区| 欧美激情国产高清| 欧美在线观看网址综合| 日韩香蕉视频| 亚洲第一福利视频| 国产日产欧美一区| 欧美日韩一区二区三区在线看| 久久久久久久波多野高潮日日| 在线综合亚洲欧美在线视频| 永久免费精品影视网站| 国产精品视频yy9099| 欧美国产综合一区二区| 久久精品国产99| 亚洲午夜国产成人av电影男同| 亚洲国产欧美国产综合一区| 国产视频自拍一区| 国产精品二区二区三区| 欧美激情在线| 久热这里只精品99re8久| 欧美一级黄色录像| 亚洲视频一区在线观看| 亚洲精品少妇30p| 一区二区三区在线免费观看| 国产精品色婷婷久久58| 欧美日韩精品二区第二页| 免费视频一区二区三区在线观看| 久久er99精品| 亚洲欧美日产图| 在线亚洲国产精品网站| 亚洲欧洲精品一区二区精品久久久 | 亚洲一区二区三区在线观看视频| 亚洲欧洲日产国码二区| 怡红院精品视频| 国产伪娘ts一区| 国产精品区一区| 欧美视频精品在线| 欧美美女日韩| 欧美激情第3页| 欧美国产第一页| 女同性一区二区三区人了人一| 久久久精品动漫| 久久精品国产亚洲5555| 久久福利一区| 欧美中文字幕| 久久成人在线| 欧美在线视频在线播放完整版免费观看 | 国产精品久久国产三级国电话系列 | 国产精品久久久久久亚洲毛片| 欧美日韩高清免费| 欧美区一区二| 欧美日本一道本| 欧美日韩国产欧| 欧美日韩国产综合在线| 欧美日韩高清区| 欧美日韩综合| 国产精品国产三级国产普通话99 | 亚洲精品中文字幕女同| 一本久久综合亚洲鲁鲁| 一区二区三区不卡视频在线观看 |