SpringCloudAlibaba(一):概述與重要組件

Java語言的框架選型上來說有太多的選擇,常見的有Dubbo,SpringCloud等。我們選擇了SpringCloudAlibaba。替換PHP語言到SpringCloudAlibaba是個大工程,主要是業務遷移部分。討論之初我也確認過是否遷移原有的業務,得到的明確答覆是 遷移。 那麼這麼來說也就簡單了,複雜的就是工期問題了。

SpringCloudAlibaba是什麼?

SpringCloud Alibaba是Alibaba結合自身的微服務實踐開源的一套微服務全家桶,在SpringCloud項目中進行孵化並且畢業。既然是SpringCloud的項目那麼阿里雲其實包含其商業化的產品。 例如Nacos在阿里雲就有其商業化的版本 MSE。 同時SpringCloud Alibaba的相關組件是經歷過雙十一大促考驗的產品。穩定性較高。

SpringCloud Alibaba與SpringCloud

SpringCloud Alibaba是SpringCloud的子項目,其實很多相關的文章都提到了SpringCloud Alibaba與SpringCloud的關係,其中有很多的論點都比較有意思。大家可以去搜索一下。SpringCloud Alibaba是依賴SpringCloud相關的標準實現的一套微服務的架構。結合阿里巴巴的相關實踐與阿里雲的相關服務實現的一些組件得以更快的實現相關產品業務。

SpringCloud Alibaba主要功能

  • 分佈式配置
    分佈式系統的外部配置管理,配置中心可視化、分環境配置控制。配置動態更新能力。
  • 服務註冊與發現
    適配SpringCloud標準的服務註冊與服務發現管理。
  • 服務限流與降級
    可通過控制檯進行實時的修改限流降級的規則,實時的Metrics監控。支持多種協議
  • 消息驅動
    基於RocketMQ實現消息驅動的業務場景開發。
  • 分佈式事物
    開源Seata使用@GlobalTransactional註解,零侵入的實現分佈式事物的支持。

SpringCloud Alibaba核心組件

Nacos (配置中心與服務註冊與發現)

Nacos實現了服務的配置中心與服務註冊發現的功能,Nacos可以通過可視化的配置降低相關的學習與維護成本,實現動態的配置管理與分環境的配置中心控制。 同時Nacos提供了基於http/RCP的服務註冊與發現功能。

Sentinel (分佈式流控)

Sentinel是面向分佈式微服務架構的輕量級高可用的流控組件,以流量作爲切入點,從流量控制,熔斷降級,系統負載保護等維度幫助用戶保證服務的穩定性。常用與實現限流、熔斷降級等策略。

RocketMQ (消息隊列)

RocketMQ基於Java的高性能、高吞吐量的消息隊列,在SpringCloud Alibaba生態用於實現消息驅動的業務開發,常見的消息隊列有Kafka、RocketMQ、RabbitMQ等,相關的比較文檔可以自行去翻閱。

Seata (分佈式事物)

既然是微服務的產品,那麼肯定會用到分佈式事物。Seata就是阿里巴巴開源的一個高性能分佈式事物的解決方案。

Dubbo (RPC)

Dubbo已經在圈內很火了,SpringCloud Alibaba基於上面提到的Nacos服務註冊中心也同樣整合了Dubbo。

其他

SpringCloud Alibaba還有一些其他的組件選擇,例如schedulerX、SMS、OSS等。但是由於其主要是阿里雲的商業化產品就不再過多的進行介紹。集成其商業化產品時才能用到。

總結

SpringCloud Alibaba是基於SpringCloud標準由阿里巴巴實現的微服務全家桶,可插拔的方式實現組件的替換,在某些場景中我們需要的組件可以自由進行選擇。例如需要分佈式鏈路跟蹤我們可以增加sleuth組件用於實現分佈式鏈路跟蹤業務等。很多人提到SpringCloudAlibaba的商業問題,記得當年SpringCloudAlibaba推出第一版的時候我也評論了…賣產品全家桶。不可否認是有那麼一些,但是其實它本身的很多組件又不一定非要選擇商業版本。這個可以自由進行選擇。

 

SpringCloudAlibaba(一):概述與重要組件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章