SOFA Weekly | QA 整理

SOFA WEEKLY | 每週精選,篩選每週精華問答
同步開源進展,歡迎留言互動
SOFAStack(Scalable Open Financial Architecture Stack)是螞蟻集團自主研發的金融級雲原生架構,包含了構建金融級雲原生架構所需的各個組件,包括微服務研發框架,RPC 框架,服務註冊中心,分佈式定時任務,限流/熔斷框架,動態配置推送,分佈式鏈路追蹤,Metrics 監控度量,分佈式高可用消息隊列,分佈式事務框架,分佈式數據庫代理層等組件,也是在金融場景裏錘鍊出來的最佳實踐。
SOFAStack 官網: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack

  每週讀者問答提煉  

歡迎大家向公衆號留言提問或在羣裏與我們互動
我們會篩選重點問題通過 
" SOFA WEEKLY " 的形式回覆

1@葉毅威 提問:

請教下 SOFARegistry 數據持久化在哪裏啊?

A:SOFARegistry 的元數據(註冊中心自身的 IP 列表之類的數據)存儲在 meta 角色內,使用 JRaft 進行存儲。應用的發佈數據保存在 data 角色的內存中,採用三副本(可配置)的方式實現高可用。

SOFARegistryhttps://github.com/sofastack/sofa-registry


2@葉毅威 提問:

我用 SDK 調用註冊了一個 datainfo 但是關掉之後 這個並沒有下線,是哪裏需要配置麼,不是默認鏈接斷開就下線麼

A:session 上採用 HTTP 方式獲取的數據都是當前節點的註冊數據,只有 data 上纔會做數據聚合。dataInfo 是不會被刪除的,連接斷開後對應 dataInfo 下的對應 Publisher 會被自動移除。

SOFARegistryhttps://github.com/sofastack/sofa-registry


3@田衝 提問:

現象:canal 監聽到某個被分佈式事務控制的表的 insert-binlog 日誌後再去查詢 MySQL 表裏數據時發現這條數據不存在,延遲1秒鐘左右再查詢就能查詢到。

疑問:Seata-at 模式-兩階段提交的設計會出現 MySQL 先生成了 binlog 日誌,後提交事務的情況嗎?

A:這個問題其實很簡單,你 canal 讀不到,那你自己應用本地事務提交後馬上讀這個 insert 的數據看能不能讀到;如果讀到,理論上來說這個過程不可能超過一秒,所以如果你應用能查到,你canal查不到,排查canal的問題,而不是 Seata 的問題;Seata 最後也只不過做了 connection.commit;最後事務的提交落庫是數據庫方本地事務流程落庫,Seata 不會起到任何干擾,Seata 代理的是 jdbc 層的處理;redo 後寫 binlog 時馬上就會廣播的,而不是事務提交才把 binlog 廣播出去;所以內 xa 的二階段沒提交你就去查主庫,由於隔離級別不一定查得到。

Seata:https://github.com/seata/seata


  本週推薦閱讀  




本文分享自微信公衆號 - 金融級分佈式架構(Antfin_SOFA)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章