為什麼會有SpringCloudStream
既然已經實作了springboot與rabbitmq的內建了,為什麼還會出現SpringCloudStream這個元件呢?
我們知道,當微服務越來越來多的時候,僅僅是feign的http調用方式已經滿足不了我們的使用場景了。這個時候系統就需要接入消息中間件了。相比較于傳統的Spring項目、SpringBoot項目使用消息中間件的很多配置不同,SpringCloud Stream抽象了中間件産品的不同,在SpringCloud中你僅僅需要修改幾行配置檔案就可以靈活的切換中間件産品而不需要修改任何代碼。
這段話的意思可以這麼了解,第一,springboot與rabbitmq的整合過程,如果做到精确的配置和高可用,穩定使用,其實還是需要一些運維成本的,尤其在面臨複雜的業務場景中,在處理消息隊列的問題是比較耗費精力的,進而開發人員不能将精力放在業務的開發上;第二點,随着分布式的應用場景越來越多也越來越複雜,通過feign或者http的形式調用在某些場景也不能很好的達到預期的效果,是以我們需要借助消息中間件進行解耦
springcloud由于其本身是基于springboot之上的開發和封裝,是以對于消息中間件的接入是必須的,比如像springcloud生态中的zipkin服務鍊路追蹤,對rabbitmq就很好的支援,SpringCloudStream目前支援rabbitmq和kafka兩種消息中間件,我們可以這麼了解,SpringCloudStream對于消息中間件的引其實就是簡化配置和開發,應用程式隻需要做非常簡單的配置,程式中使用簡單的API即可完成之前的功能,而且性能還很好,下面就用簡單的代碼來示範一下