成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SpringCloudStream如何使用

本篇內(nèi)容介紹了“Spring Cloud Stream如何使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)是專業(yè)的乾安網(wǎng)站建設(shè)公司,乾安接單;提供網(wǎng)站制作、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行乾安網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

Spring Cloud Stream是構(gòu)建消息驅(qū)動(dòng)的微服務(wù)應(yīng)用程序的框架。Spring Cloud Stream基于Spring Boot建立獨(dú)立的生產(chǎn)級(jí)Spring應(yīng)用程序,并使用Spring Integration提供與消息代理的連接。它提供了來(lái)自幾家供應(yīng)商的中間件的意見(jiàn)配置,介紹了持久發(fā)布訂閱語(yǔ)義,消費(fèi)者組和分區(qū)的概念。

您可以將@EnableBinding注釋添加到應(yīng)用程序,以便立即連接到消息代理,并且可以將@StreamListener添加到方法中,以使其接收流處理的事件。以下是接收外部消息的簡(jiǎn)單接收器應(yīng)用程序。

@SpringBootApplication@EnableBinding(Sink.class)public class VoteRecordingSinkApplication {
  public static void main(String[] args) {
    SpringApplication.run(VoteRecordingSinkApplication.class, args);
  }
  @StreamListener(Sink.INPUT)
  public void processVote(Vote vote) {
      votingService.recordVote(vote);
  }}

@EnableBinding注釋需要一個(gè)或多個(gè)接口作為參數(shù)(在這種情況下,該參數(shù)是單個(gè)Sink接口)。接口聲明輸入和/或輸出通道。Spring Cloud Stream提供了接口Source,Sink和Processor; 您還可以定義自己的界面。

以下是Sink接口的定義:

public interface Sink {
  String INPUT = "input";
  @Input(Sink.INPUT)
  SubscribableChannel input();}

@Input注釋標(biāo)識(shí)輸入通道,通過(guò)該輸入通道接收到的消息進(jìn)入應(yīng)用程序; @Output注釋標(biāo)識(shí)輸出通道,發(fā)布的消息將通過(guò)該通道離開應(yīng)用程序。@Input和@Output注釋可以使用頻道名稱作為參數(shù); 如果未提供名稱,將使用注釋方法的名稱。

Spring Cloud Stream將為您創(chuàng)建一個(gè)界面的實(shí)現(xiàn)。您可以在應(yīng)用程序中通過(guò)自動(dòng)連接來(lái)使用它,如下面的測(cè)試用例示例。

@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class)@WebAppConfiguration@DirtiesContextpublic class StreamApplicationTests {
  @Autowired
  private Sink sink;
  @Test
  public void contextLoads() {
    assertNotNull(this.sink.input());
  }}

編程模型

Binder

Binder 是 Spring Cloud Stream 的一個(gè)抽象概念,是應(yīng)用與消息中間件之間的粘合劑。
目前 Spring Cloud Stream 實(shí)現(xiàn)了 Kafka 和 Rabbit MQ 的binder。通過(guò) binder ,可以很方便的連接中間件,可以動(dòng)態(tài)的改變消息的destinations(對(duì)應(yīng)于 Kafka 的topic,Rabbit MQ 的 exchanges),這些都可以通過(guò)外部配置項(xiàng)來(lái)做到。甚至可以任意的改變中間件的類型而不需要修改一行代碼。

Publish-Subscribe

消息的發(fā)布(Publish)和訂閱(Subscribe)是事件驅(qū)動(dòng)的經(jīng)典模式。Spring Cloud Stream 的數(shù)據(jù)交互也是基于這個(gè)思想。生產(chǎn)者把消息通過(guò)某個(gè) topic 廣播出去(Spring Cloud Stream 中的 destinations)。其他的微服務(wù),通過(guò)訂閱特定 topic 來(lái)獲取廣播出來(lái)的消息來(lái)觸發(fā)業(yè)務(wù)的進(jìn)行。

這種模式,極大的降低了生產(chǎn)者與消費(fèi)者之間的耦合。即使有新的應(yīng)用的引入,也不需要破壞當(dāng)前系統(tǒng)的整體結(jié)構(gòu)。

Consumer Groups

“Group”, Kafka 中的概念。Spring Cloud Stream 的這個(gè)分組概念的意思基本和 Kafka 一致。

微服務(wù)中動(dòng)態(tài)的縮放同一個(gè)應(yīng)用的數(shù)量以此來(lái)達(dá)到更高的處理能力是非常必須的。對(duì)于這種情況,同一個(gè)事件防止被重復(fù)消費(fèi),只要把這些應(yīng)用放置于同一個(gè) “group” 中,就能夠保證消息只會(huì)被其中一個(gè)應(yīng)用消費(fèi)一次。

Message

Message,就是所說(shuō)的消息體,用來(lái)承載傳輸?shù)男畔⒂玫?。Message分為兩部分,header和payload。header是頭部信息,用來(lái)存儲(chǔ)傳輸?shù)囊恍┨匦詫傩詤?shù)。payload是用來(lái)裝載數(shù)據(jù)的,他可以攜帶的任何Object對(duì)象  不同的對(duì)象在binder中傳輸 可以指定不同的mini類型

可以通過(guò)application.yml中設(shè)置 輸入input和輸出output的mini類型

spring.cloud.stream.bindings..content-type

MessageChannel

消息管道,生產(chǎn)者生產(chǎn)一個(gè)消息到channel,消費(fèi)者從channel消費(fèi)一個(gè)消息,所以channel可以對(duì)消息組件解耦,并且提供一個(gè)方便的攔截功能和監(jiān)控功能。
默認(rèn)的通道

輸入(SubscribableChannel)和輸出通道(MessageChannel)參考 Processor接口

springcloudstream提供通道的定義 比如自定義通過(guò)可以使用接口

public interface OrderChannel {
   String INPUT = "input_order";
   String OUTPUT="ouput_order";
   /**
    * input注解制定通道的名稱  將來(lái)在yml中配置該通道的實(shí)際綁定的topic或者訂閱組
    * @return
    */
   @Input(INPUT)
   SubscribableChannel orderInput();
   /**
    * output注解指定輸出通道的名稱
    * @return
    */
   @Output(OUTPUT)
   MessageChannel orderOutput();}

以下 代碼參考 Source Sink Processor接口 將來(lái)在yml關(guān)于該通道的配置既可以

spring: 
    cloud: 
        stream: 
            bindings: 
                通道名稱: 
                    destination: mydest

“Spring Cloud Stream如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

新聞名稱:SpringCloudStream如何使用
標(biāo)題鏈接:http://jinyejixie.com/article42/iehshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、網(wǎng)站策劃、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
宾阳县| 鹿邑县| 禄丰县| 蓬莱市| 若尔盖县| 芦溪县| 马鞍山市| 岗巴县| 南漳县| 五莲县| 峡江县| 曲麻莱县| 吴堡县| 政和县| 西和县| 建水县| 五莲县| 沙田区| 嘉善县| 资阳市| 台北县| 望奎县| 佛山市| 长寿区| 龙里县| 阳西县| 县级市| 海淀区| 怀来县| 平泉县| 延长县| 临洮县| 大竹县| 翁源县| 涪陵区| 中山市| 永嘉县| 兴隆县| 忻城县| 安丘市| 苏尼特左旗|