SOFA WEEKLY | 每週精選,篩選每週精華問答,同步開源進展,歡迎留言互動
SOFA 中介軟體是螞蟻金服自主研發的金融級分散式中介軟體,包含了構建金融級雲原生架構所需的各個元件,包括微服務研發框架,RPC 框架,服務註冊中心,分散式定時任務,限流/熔斷框架,動態配置推送,分散式鏈路追蹤,Metrics 監控度量,分散式高可用訊息佇列,分散式事務框架,分散式資料庫代理層等元件,也是在金融場景裡錘煉出來的最佳實踐。
SOFA 檔案: https://www.sofastack.tech/
SOFA: https://github.com/alipay
每週讀者問答提煉
歡迎大家向公眾號留言提問或在群裡與我們互動,我們會篩選重點問題透過
” SOFA WEEKLY ” 的形式回覆
1、
@浮雲 提問:
使用 SOFALookout 的時候,客戶端發起的時候用的 http 請求,發現介面呼叫的統計資料只有用 bolt 協議的時候才有,使用 rest 協議時就沒有統計資料,這是為什麼呢?
A:目前服務端的取樣目前沒有上報,只有你用 SOFARPC 的客戶端發起,才會從客戶端得到上報的取樣資料。
服務端沒有上報嗎? 為什麼 bolt 的服務端可以拿到資料
A:bolt 的服務端做了上報,rest 的目前沒有
為什麼這樣?rest 也有需求的呀,rest 的服務端有統計資料嗎?我大概看了下程式碼,貌似統計的工作是在事件訂閱裡做的。
A:tracelog日誌有的。lookout 要適配 RestServerSendEvent 這個事件就可以了。現在是內部處理了。不過沒有發給 lookout 做處理,下個版本可以加。com.alipay.sofa.rpc.event.LookoutSubscriber 這個裡面處理一下 RestServerSendEvent 事件即可。這樣客戶端即使不用 SOFARPC ,也可以在服務端單獨產生 lookout 資訊
rest 服務端回覆的時候,發出的事件居然還跟 bolt 不一樣,這個設計的思路是什麼?
A:作為 rest,服務端收到的都是 http 請求,如果要完全跟 bolt 一樣,就要把 http的這個請求物件 Nettyhttprerquest 和 Nettyhttpresposne,轉換成 SofaRequest 和 SofaResponse 了。之前考慮這部分轉換類似強行欄位做轉換。而且 rest server 的處理時機,在最外面的時候,還沒有將請求物件這些透過rest 本身的機制轉換出來。所以這裡沒有進行完全的事件轉換。這個點我們再考慮下。rest 的server 的lookout 適配下個版本會加上。
另外,自己加個 subscriber 也是可以的吧
A:可以的。你也可以基於 com.alipay.sofa.rpc.module.Module 機製做擴充套件。
2、
相關文章 《螞蟻金服分散式鏈路跟蹤元件 SOFATracer 資料上報機制和原始碼分析 | 剖析》
@王磊 提問:
web前端呼叫 SOFARPC 的 rest 服務,接收到的狀態是 canceled。rest 服務預設超時時間是多少?可以設定嗎?
A:canceled 狀態應該你的請求還沒有服務端,瀏覽器取消了請求,和設定超時應該沒有關係的。rest 服務在服務端都是沒有超時時間的。
每週 SOFA 進展
Demo 地址:
SOFARPC v5.5.0 :
i. 支援 nacos 作為註冊中心:
https://www.sofastack.tech/sofa-rpc/docs/Registry-Nacos
ii. 整合 hystrix 作為熔斷:
https://www.sofastack.tech/sofa-rpc/docs/Fault-Hystrix
本週釋出詳情如下:
1、釋出 sofa-hessian v3.3.6主要變更如下:
i. 更新序列化黑名單,感謝螞蟻安全團隊
ii. 修複 Spring 環境下問題檔案讀取問題
詳細參考釋出報告:https://github.com/alipay/sofa-hessian/releases
長按關註,獲取分散式架構乾貨
歡迎大家共同打造 SOFAStack https://github.com/alipay