原始碼解析
在第一篇原始碼解析活動文中,我們介紹了 SOFARegistry 原始碼解析的詳細介紹與具體參與方法,錯過的小夥伴可以點選回顧哦,活動還在進行中...
活動釋出後的一週時間,我們收到了很多來自社群小夥伴們的建議和反饋,今天在這裡和大家分享一下。
活動進展
先來看看這一週的活動進展吧。
本次 SOFARegistry 原始碼解析任務共計釋出 9 個。
截至 3 月 16 日,原始碼解析任務僅剩 2 個任務未被認領,剩餘任務均在進行中,感謝大家的貢獻!?
各難度的原始碼解析任務完成度如下,我們通過這幾個 issue 來追蹤任務的完成進展,歡迎大家去認領還未被領走的原始碼解析任務哦。
待認領任務
通訊資料壓縮: https://github.com/sofastack/sofaregistry/issues/200
無損運維:https://github.com/sofastack/sofa-registry/issues/198
「專案介紹??♂️」
SOFARegistry 是螞蟻集團開源的一個生產級、高時效、高可用的服務註冊中心。SOFARegistry 最早源自於淘寶的 ConfigServer。十年來,隨著螞蟻集團的業務發展,註冊中心架構已經演進至第五代。
目前 SOFARegistry 不僅全面服務於螞蟻集團的自有業務,還隨著螞蟻金融科技服務眾多合作伙伴,同時也相容開源生態。SOFARegistry 採用 AP 架構,支援秒級時效性推送,同時採用分層架構支援無限水平擴充套件。
「未來計劃?」
繼 SOFARegistry 原始碼解析任務釋出以來,大家反響熱烈,都在問自己關心的 SOFAStack 系列的其他專案元件什麼時候釋出原始碼解析計劃。
「下期活動預告?」
Layotto 和 SOFAArk 原始碼解析任務正在籌備中,預計不久後會和大家見面,小夥伴們敬請期待吧。
在任務釋出前先給大家簡單介紹一下兩個專案及 Contributor 養成任務,大家可以先了解一下,方便後續可以更快的參與到原始碼解析任務中。
Layotto
Layotto(/leɪˈɒtəʊ/) 是一款使用 Golang 開發的應用執行時, 旨在幫助開發人員快速構建雲原生應用,幫助應用和基礎設施解耦。它為應用提供了各種分散式能力,比如狀態管理,配置管理,事件釋出訂閱等能力,以簡化應用的開發。
Layotto 以開源的 MOSN 為底座,在提供分散式能力以外,提供了 Service Mesh 對於流量的管控能力。
專案主頁:
GitHub 地址:
https://github.com/mosn/layotto
### Contributor 養成任務:
Layotto
Easy
- 為actuator模組新增單元測試
- 為java sdk新增分散式鎖 API
- 開發in-memory configuration 元件
Medium
- 讓 Layotto 相容 Dapr API
- 升級由 rust 開發的 wasm demo
- 用 mysql、consul或leaf等系統實現分散式自增id API
Hard
- 讓 Layotto 支援通過介面呼叫的方式動態載入 wasm,以支援 FaaS 場景動態排程
「詳細參考」:
https://github.com/mosn/layotto/issues/108#issuecomment-872779356
SOFAArk
SOFAArk 是一款基於 Java 實現的輕量級類隔離容器,主要提供類隔離和應用(模組)合併部署能力。
在大型軟體開發過程中,通常會推薦底層功能外掛化,業務功能模組化的開發模式,以期達到低耦合、高內聚、功能複用的優點。基於此,SOFAArk 提供了一套較為規範化的外掛化、模組化的開發方案,產品能力主要包括:
- 定義類載入模型,執行時底層外掛、業務應用(模組)之間均相互隔離,單一外掛和應用(模組)由不同的 ClassLoader 載入,可以有效避免相互之間的包衝突,提升外掛和模組功能複用能力;
- 定義外掛開發規範,提供 maven 打包工具,簡單快速將多個二方包打包成外掛(Ark Plugin,以下簡稱 Plugin)
- 定義模組開發規範,提供 maven 打包工具,簡單快速將應用打包成模組 (Ark Biz,以下簡稱 Biz)
- 針對 Plugin、Biz 提供標準的程式設計介面,包括服務、事件、擴充套件點等機制
- 支援多 Biz 的合併部署,開發階段將多個 Biz 打包成可執行 Fat Jar,或者執行時使用 API 或配置中心(Zookeeper)動態地安裝解除安裝 Biz
- 基於以上能力,SOFAArk 可以幫助解決依賴包衝突、多應用(模組)合併部署等場景問題。
專案主頁:
https://www.sofastack.tech/projects/sofa-boot/sofa-ark-readme/
GitHub 地址: