免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

SpringCloudStream總結(jié)

概念

1、group:

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),會(huì)昌企業(yè)網(wǎng)站建設(shè),會(huì)昌品牌網(wǎng)站建設(shè),網(wǎng)站定制,會(huì)昌網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,會(huì)昌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

組內(nèi)只有1個(gè)實(shí)例消費(fèi)。如果不設(shè)置group,則stream會(huì)自動(dòng)為每個(gè)實(shí)例創(chuàng)建匿名且獨(dú)立的group——于是每個(gè)實(shí)例都會(huì)消費(fèi)

組內(nèi)單次只有1個(gè)實(shí)例消費(fèi),并且會(huì)輪詢負(fù)載均衡。通常,在將應(yīng)用程序綁定到給定目標(biāo)時(shí),最好始終指定consumer group

2、destination binder:

與外部消息系統(tǒng)通信的組件,為構(gòu)造 Binding提供了 2 個(gè)方法,分別是 bindConsumer 和 bindProducer ,它們分別用于構(gòu)造生產(chǎn)者和消費(fèi)者。Binder使Spring Cloud Stream應(yīng)用程序可以靈活地連接到中間件,目前spring為kafka、rabbitmq提供binder

3、destination binding:

Binding 是連接應(yīng)用程序跟消息中間件的橋梁,用于消息的消費(fèi)和生產(chǎn),由binder創(chuàng)建

4、partition

一個(gè)或多個(gè)生產(chǎn)者將數(shù)據(jù)發(fā)送到多個(gè)消費(fèi)者,并確保有共同特征標(biāo)識(shí)的數(shù)據(jù)由同一個(gè)消費(fèi)者處理。默認(rèn)是對消息進(jìn)行hashCode,然后根據(jù)分區(qū)個(gè)數(shù)取余,所以對于相同的消息,總會(huì)落到同一個(gè)消費(fèi)者上

注:嚴(yán)格來說partition不屬于概念,而是一種Stream提高伸縮性、吞吐量的一種方式


注解

1、@Input,使用示例:

public interface MySink {
    @Input("my-input")
    SubscribableChannel input();
}

作用:

  • 用于接收消息
  • 為每個(gè)binding生成channel實(shí)例
  • 指定input channel的名稱
  • 在spring容器中生成一個(gè)名為my-input,類型為SubscribableChannel的bean
  • 在spring容器中生成一個(gè)類,實(shí)現(xiàn)MySink接口。

2、@Output,使用示例:

public interface MySource {
    @Output("my-output")
    MessageChannel output();
}

作用:

  • @Input類似,只不過是用來生產(chǎn)消息

3、@StreamListener,使用示例:

@StreamListener(value = Sink.INPUT, condition = "headers['type']=='dog'")
public void receive(String messageBody) {
    log.info("Received: {}", messageBody);
}

作用:

  • 用于消費(fèi)消息
  • condition的作用:用于過濾消息,只有符合條件表達(dá)式的消息才會(huì)被處理
  • condition起作用的兩個(gè)條件:
    • 注解的方法沒有返回值
    • 方法是一個(gè)獨(dú)立方法,不支持Reactive API

4、@SendTo,使用示例:

// 接收INPUT這個(gè)channel的消息,并將返回值發(fā)送到OUTPUT這個(gè)channel
@StreamListener(Sink.INPUT)
@SendTo(Source.OUTPUT)
public String receive(String receiveMsg) {
   return "handle...";
}

作用:

  • 用于發(fā)送消息

4、@InboundChannelAdapter,使用示例:

@Bean
@InboundChannelAdapter(value = Source.OUTPUT,
        poller = @Poller(fixedDelay = "10", maxMessagesPerPoll = "1"))
public MessageSource<String> producer() {
    return () -> new GenericMessage<>("Hello Spring Cloud Stream");
}

作用:

  • 讓添加該注解的方法生產(chǎn)消息
  • fixedDelay:多少毫秒發(fā)送1次
  • maxMessagesPerPoll:每次發(fā)送多少條消息

5、@ServiceActivator,使用示例:

@ServiceActivator(inputChannel = Sink.INPUT, outputChannel = Source.OUTPUT)
public String transform(String payload) {
    return payload.toUpperCase();
}

作用:

  • 標(biāo)注該注解的方法能夠處理消息或消息的有效內(nèi)容,通過監(jiān)聽input消息,用方法體的代碼處理后,輸出到output中

6、@Transformer,使用示例:

@Transformer(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
public Object transform(String message) {
  return message.toUpperCase();
}

作用:

  • @ServiceActivator類似,標(biāo)注該注解的方法能夠轉(zhuǎn)換消息,消息頭,或消息有效內(nèi)容

PollableMessageSource

PollableMessageSource允許消費(fèi)者可以控制消費(fèi)速率。舉個(gè)例子簡單演示一下,首先定義一個(gè)接口:

public interface PolledProcessor {
    @Input("pollable-input")
    PollableMessageSource input();
}

使用示例:

@Autowired
private PolledProcessor polledProcessor;

@Scheduled(fixedDelay = 5_000)
public void poll() {
    polledProcessor.input().poll(message -> {
        byte[] bytes = (byte[]) message.getPayload();
        String payload = new String(bytes);
        System.out.println(payload);
    });
}

參考:

https://spring.io/blog/2018/02/27/spring-cloud-stream-2-0-polled-consumers

本文題目:SpringCloudStream總結(jié)
標(biāo)題路徑:http://m.newbst.com/article26/gohhcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)建站公司靜態(tài)網(wǎng)站搜索引擎優(yōu)化做網(wǎng)站

廣告

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

成都網(wǎng)頁設(shè)計(jì)公司