SOFA WEEKLY | 每週精選,篩選每週精華問答,同步開源進展,歡迎留言互動
SOFAStack(Scalable Open Financial Architecture Stack)是螞蟻金服自主研發的金融級分散式中介軟體,包含了構建金融級雲原生架構所需的各個元件,包括微服務研發框架,RPC 框架,服務註冊中心,分散式定時任務,限流/熔斷框架,動態配置推送,分散式鏈路追蹤,Metrics 監控度量,分散式高可用訊息佇列,分散式事務框架,分散式資料庫代理層等元件,也是在金融場景裡錘煉出來的最佳實踐。
SOFA 檔案: https://www.sofastack.tech/
SOFA: https://github.com/alipay
每週推薦閱讀
SOFARPC 5.5.X 新版釋出啦 | 整合 Nacos 與 Hystrix
每週讀者問答提煉
歡迎大家向公眾號留言提問或在群裡與我們互動,我們會篩選重點問題透過
” SOFA WEEKLY ” 的形式回覆
@陳衛 提問:
SOFA 客戶端在啟動的時候,可不可以關閉服務是否可用的檢測?
A:關閉健康檢查嗎?
不是的,服務消費端在啟動的時候,會到註冊中心拉取可用的服務提供者,由於需要消費的服務非常的多,導致啟動服務要很久,開發環境不需要在啟動的時候做這個事情,影響開發的效率。
A:RPC 元件健康檢查會檢查地址推送,跳過健康檢查應該可以嘗試使用這個配置
-Dcom.alipay.sofa.healthcheck.skip.component=true
相關檔案:
https://www.sofastack.tech/sofa-boot/docs/HealthCheck
@chpengzh 提問:
這邊涉及了一個系統改造,有個狀態服務 A 實現了服務函式 a,其中 a 業務拿了 SpanContext 物件去加了一些關鍵事件。正常情況下服務 B 去呼叫 A#a 時候在呼叫入口都做了執行緒背景關係埋點,但是如果 A 可能會有定時任務去拉起 a,這個時候在定時任務執行緒池就會缺少 SpanContext 。要麼在 a 實現中判空,要麼新增這個埋點。
如果要埋點的話,springboot 裡面有沒有比較好的實現方案,我的問題就是這個。
A:你可以自己把 SpanContext 傳遞到你的任務執行緒中。
嗯。唯一麻煩的就是 schedule 入口多而且雜。
A:因為你 schedule 是非同步呼叫,就算是實現對元件的埋點,也還是需要在不同執行緒間來傳遞背景關係!
其實我倒是更關心 schedule 做呼叫鏈起點的情況,如果做起點能不能像 server 的 filter 一樣生成一個 context 呢?
A:是可以的。
嗯。如果要實現的話,有沒有什麼建議呢?在哪裡去新增這段程式碼?現在的業務程式碼入口有的走註解,有的走 registrybean。
A:可以參考一下這個思路:螞蟻金服分散式鏈路跟蹤元件埋點機制 | 剖析
@陳智翔 提問:
我在用 Nacos 作為 SOFARPC 註冊中心時有些疑問:
如果是 SOFABoot 環境,是隻有 2.5.3 版本支援,還是以上版本都支援?
我用 3.1.1 和 3.1.2 版本的 SOFABoot,服務提供放好像不會在 Nacos 註冊服務。消費方在獲取服務時也會報錯:registry config [nacos://127.0.0.1:8848] is not supported
有人能解答一下嗎?
A:SOFABoot v3.1.2 版本中已經進行整合,詳細參考釋出報告:
https://github.com/alipay/sofa-boot/releases
每週 SOFA 進展
本週釋出詳情如下:
1、釋出 SOFABoot v3.1.2 版本 , 主要變更如下:
i. 升級 sofa-rpc-starter 版本至 v6.0.1
ii. 升級 sofa-hessian 版本至 v4.0.3
iii. 升級 sofa-ark 版本至 v0.6.0
iv. 最佳化 sofa-ark 合併部署應用的 JVM 服務呼叫
v. 修複 SOFABoot 攜帶應用入參啟動失敗問題
詳細參考釋出報告:
https://github.com/alipay/sofa-boot/releases
2、釋出 SOFARPC Starter v6.0.1 版本,主要變更如下:
i. 允許使用者透過配置關閉tracer
ii. 對REST 服務支援swagger
iii. 註解能力增強
詳細參考釋出報告:
https://github.com/alipay/sofa-rpc-boot-projects/releases/tag/v6.0.1
3、釋出 SOFABolt v1.5.3 版本,主要變更如下:
i. 移除了對sofa-hessian的強依賴,支援使用原生的hessian
ii. 非同步樣式下移除Timeout物件對RequestCommand物件的取用,最佳化記憶體使用
iii. 其他程式碼細節最佳化
詳細參考釋出報告:
https://github.com/alipay/sofa-bolt/releases/tag/v1.5.3
4. 釋出 sofa-hessian v4.0.3 版本,主要變更如下:
i. ContextSerializerFactory 在 SOFAArk 場景最佳化
詳細參考釋出報告:
https://github.com/alipay/sofa-hessian/releases
5. 釋出 sofa-ark v0.6.0 版本,主要變更如下:
i. 支援多 Web 應用合併部署
ii. 支援使用 zookeeper 動態推送配置實現應用(模組)的動態部署
iii. 支援 telnet 命令檢視 plugin, biz 執行時資訊
iv. 增加 SOFAArk 執行時配置,包括日誌配置,plugin, biz的鈍化、啟用配置
v. 支援 plugin 的服務擴充套件機制以及多應用(模組)事件機制通訊
vi. 修複社群反饋的多個問題
詳細參考釋出報告:
https://github.com/alipay/sofa-ark/releases