源碼解析
在第一篇源碼解析活動文中,我們介紹了 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 地址: