您好,登錄后才能下訂單哦!
這篇文章主要講解了“Spring Cloud Stream怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Spring Cloud Stream怎么使用”吧!
Spring Cloud Stream是一個構建消息驅動的微服務框架。它構建在Spring Boot之上用以創建工業級的應用程序,并且通過Spring Integration提供了和消息代理的連接。Spring Cloud Stream為一些供應商的消息中間件產品提供了個性化的自動化配置實現(目前僅支持RabbitMQ和Kafka),同時引入了發布訂閱、消費組和分區的語義概念。
首先我們創建一個普通的Spring Boot工程,名為stream-hello,然后添加如下依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-stream-rabbit</artifactId> </dependency>
spring-cloud-starter-stream-rabbit依賴是Spring Cloud Stream對RabbitMQ的封裝,這里邊也包含了對RabbitMQ的自動化配置,比如連接的RabbitMQ的默認地址就是localhost,默認端口就是5672,默認用戶名是guest,默認密碼也是guest,由于我們的RabbitMQ都是采用了默認配置,所以這里的配置可以不去修改,一樣也可以運行。
然后創建一個名為SinkReceiver的類,用來接收RabbitMQ發送來的消息,如下:
@EnableBinding(Sink.class) public class SinkReceiver { private static Logger logger = LoggerFactory.getLogger(StreamHelloApplication.class); @StreamListener(Sink.INPUT) public void receive(Object playload) { logger.info("Received:"+playload); } }
這里我們首先使用了@EnableBinding注解實現對消息通道的綁定,我們在該注解中還傳入了一個參數Sink.class,Sink是一個接口,該接口是Spring Cloud Stream中默認實現的對輸入消息通道綁定的定義。然后我們在SinkReceiver類中定義了receive方法,并在該方法上添加了@StreamListener注解,該注解表示該方法為消息中間件上數據流的事件監聽器,Sink.INPUT參數表示這是input消息通道上的監聽處理器。
Ok,做好上面的操作之后,我們就可以啟動我們的項目了,在項目的啟動日志中,我們可以看到如下內容:
這個表示我們的工程已經通過guest用戶創建了一個指向RabbitMQ的連接。此時,在瀏覽器中打開RabbitMQ的管理頁面,一樣也可以看到連接,如下:
圖中紅線部分就是我們新建的隊列,點擊該隊列,找到Publish message選項,我們可以從這里給我們的項目發送一條消息,如下:
此時我們可以在項目的控制臺中看到消息已經收到了,如下:
只是消息沒有序列化而已。
感謝各位的閱讀,以上就是“Spring Cloud Stream怎么使用”的內容了,經過本文的學習后,相信大家對Spring Cloud Stream怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。