螞蟻金服啓動分佈式中間件開源計劃,用於快速構建金融級雲原生架構

原文地址:http://www.sohu.com/a/228804309_99940985git

 

咱們很高興地宣佈,今天螞蟻金服啓動分佈式中間件(Scalable Open Financial Architecture,如下簡稱 SOFA 中間件)的開源計劃!github

SOFA 是螞蟻金服自主研發金融級分佈式中間件,包含了構建金融級雲原生架構所需的各個組件,包括微服務研發框架,RPC 框架,服務註冊中心,分佈式定時任務,限流/熔斷框架,動態配置推送,分佈式鏈路追蹤,Metrics監控度量,分佈式高可用消息隊列,分佈式事務框架,分佈式數據庫代理層等組件,是一套分佈式架構的完整的解決方案,也是在金融場景裏錘鍊出來的最佳實踐。數據庫

螞蟻金服指望經過逐步向社區開源 SOFA 中各個組件,來幫助更多機構和合做夥伴完成金融分佈式轉型,幫助你們更加快速構建穩定的金融級雲原生的架構,也指望 SOFA 在螞蟻體系以外的更大場景下去應用,來進一步鍛造改進這套體系,使其更加完善和穩固,並具有更多金融級的屬性。因此咱們也很是歡迎社區的夥伴和各行業的夥伴可以參與共同探討、交流和共建。瀏覽器

Why(爲何要作)網絡

SOFA 中間件在螞蟻內部經歷了十年的發展和四代架構的演進,被普遍應用在包括支付,借貸,信用,基金,保險等全金融場景,支撐着螞蟻平穩度過歷次雙十一,雙十二,新春紅包等大考,創造了25.6 w/s 的交易記錄,並還在不斷刷新這個記錄。架構

從 2015 年開始,螞蟻金服開啓了金融科技對外輸出的戰略,SOFA 也走出了螞蟻,甚至跨越了國界,被更多金融機構與合做夥伴所使用,如天弘基金,信美互信,南京銀行,PayTM、DANA錢包等。框架

在與合做夥伴以及客戶的溝通、合做過程當中,咱們發現了 SOFA 的理念和能力也正是不少金融行業的企業所須要的,你們或多或少正在規劃或者已經在作相似的東西,但缺少像螞蟻金服這麼大的流量來提供考驗,也缺少專業團隊的長期投入,更缺少豐富的金融場景和嚴苛的業務壓力來驅動技術持續發展。分佈式

隨着近幾年螞蟻金服在生態構建上不斷完善,以及不斷地有更多的公司加入到螞蟻金服的金融生態中,咱們也發現了整個金融生態地複雜性和多樣性,SOFA 中間件也須要在更多地場景下被打磨、被完善、被加強。所以,咱們選擇將 SOFA 逐步開源出來,在貢獻給社區的同時,也期待社區、合做夥伴甚至客戶,都可以一塊兒參與共建,造成行業標準和最佳實踐。微服務

How(怎麼作)組件化

爲了讓 SOFA 可以開源出來,咱們投入了大量的重構工做,以可擴展化的方式來層層構建 SOFA 的能力,保證 SOFA 的內部版本和開源的版本採用的是同一個內核。因此 SOFA 的內部版本就是在開源版本之上擴展了內部邏輯和歷史版本的兼容邏輯。開源版本的核心邏輯,內外是一致的,並在螞蟻金服的生產環境中被普遍使用的,同時會隨着螞蟻自身業務訴求的驅動,不斷的演進。

開源社區有很是多優秀的技術和豐富的生態,爲了更好的能融入和對接現有技術體系,尊重並遵照一些社區標準,SOFA 在設計過程當中就充分考慮了兼容性和架構分層,充分兼容適配社區標準,實現組件化、可擴展、可替換。

全部的 SOFA 中間件中的組件組合起來能夠發揮更大的能力,可是每個組件都是能夠被替換的,好比用戶能夠選擇用 Dubbo 來替換 SOFARPC,或者跟 SOFARPC 對接互通;能夠選擇 Zookeeper 來做爲服務註冊發現,也能夠選擇 SOFA 的服務註冊中心來作服務發現;分佈式鏈路追蹤組件遵照 OpenTracing 的規範,能夠直接和 Zipkin 進行對接等等;Metrics組件會遵循 Metrics2.0 標準,適配 Prometheus 體系等等。

What(要作什麼)

本次 SOFA 中間件開源的內容包含了SOFABoot SOFARPC兩個組件。

SOFABoot 是螞蟻金服基於 Spring Boot 構建一個研發框架,總體架構上相似於螞蟻金服以前開源的Egg框架,遵照微內核,可插拔的理念,咱們以標準 Spring Boot Starter的方式,擴展了不少企業級特性,以解決大規模團隊開發雲原生微服務系統中會遇到的問題,如類隔離,ReadinessCheck,日誌隔離等等能力,後續會開放更多內部實踐過的特性,如 Spring 上下文隔離,合併部署,動態模塊,Tracing、Metrics、Streaming、測試框架等。

同時,螞蟻的不少技術團隊和阿里的技術團隊也開放了不少類庫和組件,咱們都會提供原生的集成能力和 Demo,方便你們更好的整合使用。SOFABoot 100% 兼容 Spring Boot,和 Spring Boot 並不是是替代的關係,全部 Spring Boot 中的能力也均可以在 SOFABoot 中使用。

SOFABoot 的 Github 的地址是:https://github.com/alipay/sofa-boot ,歡迎你們使用反饋、貢獻代碼。(請將網址複製至瀏覽器中打開便可查看,下同。)

SOFARPC 是一個高效,可靠,可擴展的 RPC 的框架,是螞蟻金服服務化架構的基石。SOFARPC 最先源於阿里內部的 HSF,通過了螞蟻金服內部多年的發展,在協議,網絡,路由,可擴展性等層面都進行了大量的改造和優化的工做,適配了更多金融級的場景。

SOFARPC 在螞蟻金服內部是被全部在線應用的使用的服務調用框架,截止 2017 年雙十一,SOFARPC 已經被螞蟻 2000 多個系統所使用,生產環境發佈的服務數量超過了 23000 個。

SOFARPC 提供了多協議的支持,包括在螞蟻金服內部被普遍採用,而且高度優化的 Bolt 協議,以及 REST,Dubbo,gRPC 等等主流的協議;也針對內部網關,測試等等場景提供了泛化調用能力;爲了解決超大規模流量的預熱的問題,提供了服務預熱的能力;用戶也能夠根據 SOFARPC 的擴展機制擴展本身須要的能力。

在後續的版本中,SOFARPC 將會加上分佈式鏈路追蹤,Metrics,更多的服務註冊中心的支持,CRC 校驗等等能力。

SOFARPC 的 Github 的地址是:https://github.com/alipay/sofa-rpc,歡迎你們使用反饋、貢獻代碼。(請將網址複製至瀏覽器中打開便可查看,下同。)

除了以上的兩個 SOFA 中間件中的組件,在接下來,咱們將會陸續開源 SOFA 中間件中的其餘的組件,目前這些組件正在進行必定程度地重構中,爲開源作準備,敬請你們期待~

相關文章
相關標籤/搜索