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

前一篇提到了咱們爲何要替換PHP語言採用Java語言。而Java語言的框架選型上來講有太多的選擇,常見的有Dubbo,SpringCloud等。咱們選擇了SpringCloud Alibaba。替換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推出初版的時候我也評論了...賣產品全家桶。不能否認是有那麼一些,可是其實它自己的不少組件又不必定非要選擇商業版本。這個能夠自由進行選擇。開發

相關文章
相關標籤/搜索