歡迎光臨
每天分享高質量文章

SOFA Weekly | 每周精選【1/7- 1/11】

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

    赞(0)

    分享創造快樂