java springcloud b2b2c shop 多使用者商城系統原始碼-介紹Stream

gung123發表於2020-01-16

Spring Cloud Stream是構建訊息驅動的微服務應用程式的框架。Spring Cloud Stream基於Spring Boot建立獨立的生產級Spring應用程式,並使用Spring Integration提供與訊息代理的連線。 瞭解springcloud架構可以加求求:三五三六二四七二五九,它提供了來自幾家供應商的中介軟體的意見配置,介紹了持久釋出訂閱語義,消費者組和分割槽的概念。

您可以將@EnableBinding註釋新增到應用程式,以便立即連線到訊息代理,並且可以將@StreamListener新增到方法中,以使其接收流處理的事件。以下是接收外部訊息的簡單接收器應用程式。

@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註釋需要一個或多個介面作為引數(在這種情況下,該引數是單個Sink介面)。介面宣告輸入和/或輸出通道。Spring Cloud Stream提供了介面Source,Sink和Processor; 您還可以定義自己的介面。

以下是Sink介面的定義:

public interface Sink {
String INPUT = "input";
@Input(Sink.INPUT)
SubscribableChannel input();
}
複製程式碼

@Input註釋標識輸入通道,透過該輸入通道接收到的訊息進入應用程式; @Output註釋標識輸出通道,釋出的訊息將透過該通道離開應用程式。@Input和@Output註釋可以使用頻道名稱作為引數; 如果未提供名稱,將使用註釋方法的名稱。

Spring Cloud Stream將為您建立一個介面的實現。您可以在應用程式中透過自動連線來使用它,如下面的測試用例示例。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class)
@WebAppConfiguration
@DirtiesContext
public class StreamApplicationTests {
 
  @Autowired
  private Sink sink;
 
  @Test
  public void contextLoads() {
    assertNotNull(this.sink.input());
  }
}
複製程式碼

從現在開始,我這邊會將近期研發的spring cloud微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發spring cloud框架的朋友,大家來一起探討spring cloud架構的搭建過程及如何運用於企業專案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2673698/,如需轉載,請註明出處,否則將追究法律責任。

相關文章