W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Spring Cloud Stream是用于構(gòu)建消息驅(qū)動(dòng)的微服務(wù)應(yīng)用程序的框架。Spring Cloud Stream在Spring Boot的基礎(chǔ)上創(chuàng)建了獨(dú)立的生產(chǎn)級(jí)Spring應(yīng)用程序,并使用Spring Integration提供了到消息代理的連接。它提供了來自多家供應(yīng)商的中間件的合理配置,并介紹了持久性發(fā)布-訂閱語(yǔ)義,使用者組和分區(qū)的概念。
您可以在應(yīng)用程序中添加@EnableBinding
批注,以立即連接到消息代理,還可以在方法中添加@StreamListener
,以使其接收流處理的事件。以下示例顯示了接收外部消息的接收器應(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í)一個(gè)輸入通道,接收到的消息通過該輸入通道進(jìn)入應(yīng)用程序。@Output
注釋標(biāo)識(shí)一個(gè)輸出通道,已發(fā)布的消息通過該輸出通道離開應(yīng)用程序。@Input
和@Output
批注可以使用頻道名稱作為參數(shù)。如果未提供名稱,則使用帶注釋的方法的名稱。
Spring Cloud Stream為您創(chuàng)建接口的實(shí)現(xiàn)。您可以通過自動(dòng)裝配在應(yīng)用程序中使用它,如以下示例所示(來自測(cè)試用例):
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class) @WebAppConfiguration @DirtiesContext public class StreamApplicationTests { @Autowired private Sink sink; @Test public void contextLoads() { assertNotNull(this.sink.input()); } }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: