1. 程式人生 > >螞蟻開源的 SOFABoot,和 Spring Boot 有啥關係?

螞蟻開源的 SOFABoot,和 Spring Boot 有啥關係?

![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201227142726439-152629779.png) ## 一、SOFABoot 是什麼鬼? 說到 SOFABoot,不得不先說下 SOFARPC 框架,SOFARPC 也是大名遠揚,最早起源於阿里淘寶 HSF 框架,現在是螞蟻金服開源的一款高效能、高可擴充套件性、生產級別的 RPC 框架,在螞蟻金服,SOFARPC 框架已經使用了十多年了,並且已經歷經了五代。 SOFARPC 開源地址: > https://github.com/sofastack/sofa-rpc 棧長當初第一次看到 SOFABoot 這個框架的時候,心裡想著,難道是 SOFABoot = SOFA + Spring Boot 的結合? **不賣關子了,先來看下官方介紹:** > **SOFABoot** 是螞蟻金服開源的基於 **Spring Boot** 的研發框架,它在 **Spring Boot** 的基礎上,提供了諸如 **Readiness Check,類隔離,日誌空間隔離**等等能力。 > > 在增強了 **Spring Boot** 的同時,**SOFABoot** 提供了讓使用者可以在 **Spring Boot** 中非常方便地使用 **SOFA** 中介軟體的能力。 SOFABoot 開源地址: > https://github.com/sofastack/sofa-boot ![](https://img2020.cnblogs.com/other/1218593/202012/1218593-20201227142727408-1167678476.png) 看完介紹,棧長才發現其實並不是,兩者並不能直接劃等號。 SOFABoot 和 SOFARPC 都是螞蟻金服開源的 SOFA 技術棧的開源專案,SOFARPC 只是其 SOFA 技術棧體系(**SOFAStack**)中的一個 RPC 框架。 > SOFAStack™(Scalable Open Financial Architecture Stack)是一套用於快速構建金融級雲原生架構的中介軟體,也是在金融場景裡錘鍊出來的最佳實踐。 SOFABoot 也是 SOFA 技術棧體系中一個框架,但和 SOFARPC 沒有直接關係,SOFABoot 是一個 Spring Boot 加強版,還提供了方便使用 SOFA 中介軟體的能力,SOFARPC 只是其中之一而已。 ## 二、功能描述 Spring Boot 雖然是一個非常優秀的主流開源框架,但在螞蟻內部會遇到很多問題,比如說 Spring Boot 在實施大規模微服務架構時候的就會遇到很多問題,所以 SOFABoot 應運而生。 SOFABoot 基於 Spring Boot 的基礎上進行構建,並且是完全相容 Spring Boot 的。 **SOFABoot 在 Spring Boot 上還提供了哪些能力?** 1)擴充套件 Spring Boot 的健康檢查,額外提供了 Readiness Check 的能力,以保證應用例項安全上線; 2)增加基於 Spring 上下文隔離的模組化開發能力,每個 SOFABoot 模組使用獨立的 Spring 上下文,避免不同 SOFABoot 模組間的 BeanId 衝突; 3)增加模組並行載入和 Spring Bean 非同步初始化能力,加速應用啟動; 4)增加日誌空間隔離的能力,中介軟體框架自動發現應用的日誌實現依賴並獨立列印日誌,避免中介軟體和應用日誌實現繫結; 5)增加基於 SOFAArk 框架提供類隔離能力,方便解決各種類衝突問題; 6)增加中介軟體整合管理的能力,統一管控、提供中介軟體統一易用的程式設計介面、每一個 SOFA 中介軟體都是獨立可插拔的元件; ## 三、依賴環境 SOFABoot 和 Spring Boot 版本依賴關係: | SOFABoot 版本 | Spring Boot 版本 | | ------------- | ---------------- | | 2.3.x | 1.4.2.RELEASE | | 2.4.x | 1.4.2.RELEASE | | 2.5.x | 1.5.16.RELEASE | | 3.0.x | 2.0.3.RELEASE | | 3.1.x | 2.1.0.RELEASE | | 3.2.x | 2.1.0.RELEASE | | 3.3.0~3.3.1 | 2.1.11.RELEASE | | 3.3.2 及以後 | 2.1.13.RELEASE | SOFABoot 目前最新版本已到 v3.4.6,最低支援 JDK 7,SOFABoot 3.1.0 基於 Spring Boot 2.1.0.RELEASE 已支援 JDK 11,所以其依賴的 JDK 的版本肯定應該也是根據 Spring Boot 走的。 目前的 Spring Boot 版本已經到了 [2.4.x](https://mp.weixin.qq.com/s/Fff2EsSxraefIUJ8HpQXFg),想相容最新的 Spring Boot 版本貌似還早。 SOFABoot 還使用了其他主要第三方開源元件: - Spring - Spring Boot - SLF4j - sofa-common-tools 一些擴充套件依賴: - nuxeo - ...... SOFABoot 支援 Maven 和 Gradle 依賴管理,類似 Spring Boot 的依賴引入方式,如在 Maven 配置檔案中增加