螞蟻金服開源增強(qiáng)版 Spring Boot 的研發(fā)框架!
來源:gitee.com/sofastack/sofa-boot
SOFABoot 是螞蟻金服開源的基于 Spring Boot 的研發(fā)框架,它在 Spring Boot 的基礎(chǔ)上,提供了諸如 Readiness Check,類隔離,日志空間隔離等等能力。在增強(qiáng)了 Spring Boot 的同時,SOFABoot 提供了讓用戶可以在 Spring Boot 中非常方便地使用 SOFA 中間件的能力。為了解決 Spring Boot 在實施大規(guī)模微服務(wù)架構(gòu)時候的問題,SOFABoot 提供了以下的能力:
增強(qiáng) Spring Boot 的健康檢查能力
針對 Spring Boot 缺少 Readiness Check 能力的情況,SOFABoot 增加了 Spring Boot 現(xiàn)有的健康檢查的能力,提供了 Readiness Check 的能力。利用 Readiness Check 的能力,SOFA 中間件中的各個組件只有在 Readiness Check 通過之后,才將流量引入到應(yīng)用的實例中,比如 RPC,只有在 Readiness Check 通過之后,才會向服務(wù)注冊中心注冊,后面來自上游應(yīng)用的流量才會進(jìn)入。
提供類隔離的能力
為了解決 Spring Boot 下的類依賴沖突的問題,SOFABoot 基于 SOFAArk 提供了 Spring Boot 上的類隔離的能力,在一個 SOFABoot 的系統(tǒng)中,只要引入 SOFAArk 相關(guān)的依賴,就可以將 SOFA 中間件相關(guān)的類和應(yīng)用相關(guān)的類的 ClassLoader 進(jìn)行隔離,防止出現(xiàn)類沖突。當(dāng)然,用戶也可以基于 SOFAArk,將其他的中間件、第三方的依賴和應(yīng)用的類進(jìn)行隔離。
日志空間隔離能力
為了統(tǒng)一大規(guī)模微服務(wù)場景下的中間件日志的打印,SOFABoot 提供了日志空間隔離的能力給 SOFA 中間件,SOFA 中間件中的各個組件采用日志空間隔離的能力之后,自動就會將本身的日志和應(yīng)用的普通日志隔離開來,并且打印的日志的路徑也是相對固定,非常方便進(jìn)行統(tǒng)一地監(jiān)控。
SOFA 中間件的集成管理
基于 Spring Boot 的自動配置能力,SOFABoot 提供了 SOFA 中間件統(tǒng)一易用的編程接口以及 Spring Boot 的 Starter,方便在 Spring Boot 環(huán)境下使用 SOFA 中間件,SOFA 中間件中的各個組件都是獨(dú)立可插拔的,節(jié)約開發(fā)時間,和后期維護(hù)的成本。
模塊化開發(fā)
SOFABoot 從 2.4.0 版本開始支持基于 Spring 上下文隔離的模塊化開發(fā)能力,每個 SOFABoot 模塊使用獨(dú)立的 Spring 上下文,避免不同 SOFABoot 模塊間的 BeanId 沖突,有效降低企業(yè)級多模塊開發(fā)時團(tuán)隊間的溝通成本。
項目地址
開源地址:https://gitee.com/sofastack/sofa-boot
昨晚逛GitHub,無意中看到一位大佬(https://github.com/halfrost)的算法刷題筆記,感覺發(fā)現(xiàn)了寶藏!有些小伙伴可能已經(jīng)發(fā)現(xiàn)了,但咱這里還是忍不住安利一波,怕有些小伙伴沒有看到。
關(guān)于算法刷題的困惑和疑問也經(jīng)常聽朋友們提及。這份筆記里面共包含作者刷LeetCode算法題后整理的數(shù)百道題,每道題均附有詳細(xì)題解過程。很多人表示刷數(shù)據(jù)結(jié)構(gòu)和算法題效率不高,甚是痛苦。有了這個筆記的總結(jié),對校招和社招的算法刷題幫助之大不言而喻,果斷收藏了。





END


