代碼改變世界

支付類系統數據處理和數據中臺的數據處理方式有什么不同?

2019-06-17 10:26 by 春哥大魔王, 242 閱讀, 收藏, 編輯
摘要: 數據備份之后實時性如何保證 在建立數據中臺的時候,數據還是來源于各個異構的業務應用系統,實現了數據的統一,但是數據實際上是多存了一份,數據存在冗余,同時數據實時性如何來保證了?針對每個業務系統都開發數據提取接口? 數據備份的通用處理方式 能用數據層的binlog方式就用,要不就業務層拉數據,不過如果閱讀全文

系統冪等設計

2019-06-06 11:18 by 春哥大魔王, 386 閱讀, 收藏, 編輯
摘要: 前言 冪等簡單的定義: 系統中的多次操作,不管多少次,都應該產生一樣的效果,或返回一樣的效果。 比如實際的業務請求為創建一個活動,理論上需要根據業務形態開發冪等創建活動的接口,這樣在相同參數調用接口多次創建活動時,只可以創建成功一次。 由于查詢天生的是冪等請求,所以針對于查詢場景可以不做業務角度的冪閱讀全文

一文讀懂消息隊列一些設計

2019-06-04 19:17 by 春哥大魔王, 402 閱讀, 收藏, 編輯
摘要: 高可用 常用的消息隊列的高可用是怎么設計的呢? 消息隊列一般都有一個nameserver服務,用來檢測broker是否存活,或者處理能力上是否存在延遲。這樣在發送消息時就可以規避將消息發送到宕機的broker上,也避免因為網絡等原因消息處理失敗。 那么針對于以上兩種情況,消息隊列如何保證高可用方案的閱讀全文

DDD應對運營活動系統腐化實踐

2019-06-03 08:13 by 春哥大魔王, 239 閱讀, 收藏, 編輯
摘要: 前言 任何人類的設計都會腐化,軟件系統也不例外 腐化之謎 隨著系統的規模增長和復雜度膨脹,系統會慢慢腐化。 于是改一個很簡單的下單地址,就會牽動整個交易系統十幾處的改動。 如何解決這種腐化之謎呢? 參考計算機系統架構: 一個復雜的計算機系統架構包括:軟件系統元素,元素之間的聯系,元素本身有自己特有屬閱讀全文

一文讀懂DDD

2019-05-28 19:18 by 春哥大魔王, 441 閱讀, 收藏, 編輯
摘要: 何為DDD DDD不是架構設計方法,不能把每個設計細節具象化,DDD是一套體系,決定了其開放性,體系中可以用任何一種方法來解決這些問題,但是如果一些關鍵問題沒有具體方案落地,可能讓團隊無所適從。 有的小伙伴覺得DDD太虛了,具體在我們進行業務代碼編寫落地中DDD主要解決什么問題呢? 總結起來說主要目閱讀全文

阿里是如何處理分布式事務的

2019-05-20 11:36 by 春哥大魔王, 1026 閱讀, 收藏, 編輯
摘要: 分布式事務中的TCC模式,貌似是阿里提出來的,所以阿里自研的分布式事務框架總是少不了TCC的影子。 服務拆分 很多系統早期都是單系統服務架構,所有業務聚合在少數幾個系統中對外提供服務。隨著業務發展,服務之間耦合比較嚴重,一般會對服務進行重構,重構的主要思想也就是圍繞“拆分”展開。 比如按照功能進行解閱讀全文

核心交易系統架構演進

2019-02-19 13:20 by 春哥大魔王, 1067 閱讀, 收藏, 編輯
摘要: 前言 隨著雙11進入千億時代,電商平臺正在向“全球化,娛樂互動化,無線化,全渠道”發展。 為實現全民互動,電商平臺會進行低價預售,狂歡紅包,購物券,紅包雨,商品半價,滿n減1等多種促銷方式。 核心交易鏈路設計 每筆剁手操作都會經歷一系列核心系統處理,如圖: 如此眼花繚亂的玩法,底層是多個核心系統的支閱讀全文

系統服務化

2018-06-28 12:57 by 春哥大魔王, 216 閱讀, 收藏, 編輯
摘要: 服務拆分 根據業務或組織架構進行基本服務拆分,每個服務實例會擁有專屬的網絡地址、獨立的計算資源,并且獨立部署。客戶端通過訪問服務實例的地址來調用服務 API。不同服務也可以相互調用。 統一配置管理 一個服務可能會跑多個實例,每個服務實例都會需要做配置。為了方便統一調整配置,我們可以把配置中心化,每個閱讀全文

重構系統的套路-寫有組織的代碼

2018-06-28 10:30 by 春哥大魔王, 390 閱讀, 收藏, 編輯
摘要: 如果一個項目經歷了快速發展,勢必在業務發展背后留下了一個很無序,結構混亂的代碼,無序而混亂的代碼勢必造成很大的bug修復及擴展成本。 說到搭建系統都在談論高并發,大數據,而易于維護和可擴展性則被大部分人拋之腦后,增加最基礎的面向對象思想和設計模式幫助我們組織好易于維護和閱讀的代碼。 不要好高騖遠看一閱讀全文

重構系統的套路-提高并發能力

2018-06-28 10:29 by 春哥大魔王, 192 閱讀, 收藏, 編輯
摘要: 提高系統并發能力,總結起來有三點:異步,緩存,并行。 異步 比如我們在某段業務邏輯中加了一個同步寫kafka的操作,tp99瞬間多了30毫秒,這樣在整個監控曲線看起來非常扎眼,于是我們需要將這個同步改成異步。 對于老系統需要在業務進行梳理,如果業務場景中不關心返回值,這樣完全可以做成異步。 如果業務閱讀全文
四川金7乐历史开奖号码查询