SOFA WEEKLY | 每週精選,篩選每週精華問答
同步開源進展,歡迎留言互動
SOFAStack(Scalable Open Financial Architecture Stack)是螞蟻金服自主研發的金融級分散式架構,包含了構建金融級雲原生架構所需的各個元件,包括微服務研發框架,RPC 框架,服務註冊中心,分散式定時任務,限流/熔斷框架,動態配置推送,分散式鏈路追蹤,Metrics 監控度量,分散式高可用訊息佇列,分散式事務框架,分散式資料庫代理層等元件,也是在金融場景裡錘煉出來的最佳實踐。
SOFA 檔案: https://www.sofastack.tech/
SOFA: https://github.com/alipay
每週讀者問答提煉
歡迎大家向公眾號留言提問或在群裡與我們互動
我們會篩選重點問題透過
” SOFA WEEKLY ” 的形式回覆
1、
@ 天行健 提問:
請問下,SOFA 的超時時間設定可以到方法粒度嗎?
A:可以的。具體可以檢視相關檔案:
https://www.sofastack.tech/sofa-rpc/docs/Bolt-Timeout
沒有提供註解的方式嘛?
A:目前還沒有,我們可以後面新增一下。記錄了一個 issue,可以跟進這個 issue 的進展。Issue:
https://github.com/alipay/sofa-rpc/issues/560
SOFARegistry 可以用來做多機房流量排程嗎?
A:SOFARegistry 本身有 Data Center 的概念,這個 Data Center 是虛擬概念,你可以把不同機房指定同一個 Data Center,也可以不同機房不同 Data Center,Data Center 之間是隔離的,不會同步資料。
2、關於 SOFARegistry 的討論
專案地址:https://github.com/alipay/sofa-registry
@ liuyanghejerry 提問:
感覺把 Tair 又寫了一遍…
A:在資料分片上思路和 Tair 類似,但分片的一致性實現沒有 Tair 複雜(Tair 做得更強);SOFARegistry 的分片一致性最終需要依賴內部的 Session 節點做資料心跳來保證,當然這也是和產品的功能和定位有關,服務發現在一致性要求上沒有 KV 系統那麼高。另外在其他方面也是有很多區別的,比如資料模型,在 SOFARegistry 上單個服務的地址串列,是來自各個業務機器的 Pub 的彙總,而不是純粹的 KV 。
@ Lorgine 提問:
缺少一個跟 Nacos 對比?
A:SOFARegistry 和 Nacos 最主要的不同是:Nacos 把配置管理和服務發現的功能整合在一起;SOFARegistry 專註於服務發現和服務註冊能力,對於配置管理部分會有另外的配置中心產品進行獨立承載職責,這樣的劃分形式希望職責分明,每種能力都做到最強。
每週 SOFA 進展
本週釋出詳情如下:
1、釋出 SOFARegistry v5.2.0,主要變更如下:
i. 支援服務釋出及訂閱
ii. 豐富的 REST 介面以支援健康檢查及運維管理
iii. 採用分層架構及資料分片,支援海量連線及海量資料
iv. 採用 AP 架構,保證網路分割槽下的可用性
v. 基於 SOFABolt 通訊框架,服務上下線秒級通知
詳細參考釋出報告:
https://github.com/alipay/sofa-registry/releases/tag/v5.2.0
2、釋出 SOFAJRaft v1.2.4,主要變更如下:
i. 修複一種情況下 lease read 的 stale read
ii. 部分 timestamp 修改為 monotonic time
iii. 修複一種情況下 replicator 被 block 住的問題
iv. 解決 Windows 平臺下某些單測無法建立目錄
v. 解決 Windows 平臺下某些 rocksdb options 設定不當導致行程 crash
詳細參考釋出報告:
https://github.com/alipay/sofa-jraft/releases/tag/1.2.4
3、釋出 SOFALookout v1.5.3,主要變更如下:
i. 增加採集 Linux 作業系統的記憶體 Metrics 指標
詳細參考釋出報告:
https://github.com/alipay/sofa-lookout/releases/tag/1.5.3
4、釋出 SOFAMosn v0.4.1,主要變更如下:
i. 新功能支援
-
Metrics 輸出方式支援擴充套件,預設實現 Console 輸出和 Prometheus 輸出
-
Metrics 支援 Exclusion 配置
- Logger 支援動態更新 Level、動態開關
- Requestinfo 中記錄的 Status Code 統一採用 Http Status Code 作為標準
- 路由支援在特定場景下透過 KV 直接獲取、支援針對 VirtualHost 的路由新增與刪除
- HTTP 協議支援100 Continue
- 支援 Tars 協議
- 支援 SOFARPC 的心跳包空閑傳送、支援針對不同的 sub protocol 建立連線
- 支援全新的平滑升級樣式
- 新增 ADMIN API
ii.效能最佳化
- 動態配置檔案更新效能最佳化
- Tracer 實現效能最佳化
- HOST 更新效能最佳化
iii. 程式碼結構、介面函式重構
- Stream 包結構、介面重構
- Logger 寫日誌修改為非同步寫
- xds 轉換程式碼重構
- 路由鏈支援更加靈活的自定義方式
- 部分通用函式整理到 utils 包中
iv. 可擴充套件性支援
- 健康檢查探測方式、探測回呼可擴充套件,預設探測方式為 Tcp Dial
- Buffer 記憶體復用模組可擴充套件
- LB 型別可擴充套件
- 配置檔案解析方式可擴充套件,預設為解析 json 檔案
v. BUG FIX
- Buffer 的併發問題
- WorkPool 的 Flush、Reset 導致死鎖問題
- 併發衝突問題
- HTTP2 處理 Trailer 的問題
- 其他 Bug Fix
詳細參考釋出報告:
https://github.com/alipay/sofa-mosn/releases/tag/0.4.1