主頁 > 軟體設計 > 阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

2020-11-11 22:19:32 軟體設計

每一年的雙十一都是新技術的演練場,對于技術人員來說,維持雙11全天24小時穩定流暢固然不易,但最為考驗的時刻當屬零點剛過,大家操起手機,重繪早已存好的購物車,點擊支付的那一刻!

11年,零點越來越平滑的雙11購物背后,支付寶有過哪些不為人知的技術探索,本篇文章原文作者為螞蟻金服科技,、

#快速領取通道:(點這里)免費獲取!誠意滿滿!!!

Java面試精選題、架構實戰檔案傳送門:https://jq.qq.com/?_wv=1027&k=iWJZw1rp

正文:

和過去10年一樣,2019年天貓雙11又創造了一個全新的紀錄,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

這個數字背后,是數代支付寶工程師們殫精竭慮、不斷突破技術難關,

從外部瓶頸說起

從外部瓶頸說起

事情從一開始就顯得不是很順利,

2011年的雙十一,在高峰時期少數用戶無法付款,經過調查發現,這是因為少數銀行的網銀系統在壓力下出現故障,早年的支付寶交易,用戶點擊支付后需要從支付寶和銀行的介面去付款,而早年這個介面的性能很差,每秒只能支持幾十到上百筆交易,穩定性也比較差,一旦流量上來,容易發生故障,

如果不解決這個問題,今后的每次大促都會出現無法付款的情況,極大影響用戶體驗,但是,這個問題單靠技術是很難解決的,銀行對網銀系統的演進有自己的規劃,支付寶無法去干涉它們的系統,

不過,聰明的運營人員想出了一個變通的辦法,在2012年的雙十一,支付寶通過活動吸參考戶先充值后付款,讓用戶先將錢充值到支付寶余額上,到雙十一直接從余額里面扣款就行,這樣,外部的瓶頸就被轉換到內部了,這樣做效果非常顯著,付款失敗的問題大為緩解,

然而,外部的瓶頸始終存在,面對每年翻倍提升的流量峰值,支付對外部的依賴始終是一個隱患,不知道什么時候就會爆發,

解決這個問題最好的辦法,就是不通過網銀,讓資金在內部的系統中流轉,先充值后付款就是這個原理,那么,有沒有一個方法,吸參考戶把錢放到支付寶里呢?2013年6月,支付寶推出余額寶,歪打正著的解決了這個問題,到2014年底余額寶就吸引了1.85億用戶,在13年和14年的雙十一,交易峰值也分別實作了4倍和3倍的增長,

2018年5月,支付寶接入網聯清算平臺,同時在這些年里,銀行也在大力提升自己的系統能力,中大型銀行的網銀系統支持的交易筆數已經達到2萬筆/秒以上,外部問題基本得以解決,

解決了外部瓶頸之后,支付峰值的數字能有多高,就看支付寶的系統如何化解一年比一年更兇猛的流量洪峰,

容量規劃:三軍未動糧草先行

事實上,支持交易筆數峰值面臨的首要問題,并不是設計一個完美支持橫向擴展的架構,而是對可能的流量峰值進行準確估計,然后安排對應的機器和資源,如果不做估計,可能發生兩種情況:預備資源過多,架構過度設計,造成資源浪費;預備資源過少,無法完美支持大促,造成部分支付排隊或失敗, 每年雙十一備戰,負責大促的決策團隊會根據歷史資料、大促目標來擬定一個交易數值,然后將這個數值拆解為各個系統所需要應對的流量,從而進行系統容量規劃,

雙11大促的場景指標一般包括交易創建數、收銀臺展現數、交易支付數,總的支付目標數已經有了,運維人員根據總tps/單機tps的演算法計算出應用在每個指標下的單機能力,然后,參考歷史活動資料,可以計算應用在不同場景鏈路下的單機tps,

但是,這種做法人工干預較多,對于各個應用的容量預估的粒度比較粗,后來,支付寶又建設了容量分析平臺,可以進行自動化的細粒度的容量分析,

它的原理是,如果我們把一個鏈路理解為一個業務,鏈路根節點可以理解為業務的源頭流量請求,每個鏈路上的節點(這里的節點包括應用、DB、tair等)都能計算出該節點呼叫次數相對于根節點流量的系數,因此,當業務源頭的QPS確定時,就可以基于鏈路資料,計算出每個節點的QPS,

2018年的雙十一,支付寶還建設了智能容量模型,不但可以根據業務流量進行容量預估,還可以智能的產出應用資源部署方案,使得在該方案下,部署單元在承載給定業務流量時的容量水平處于目標范圍,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

智能容量模型是支付寶對 AIOps 探索的一部分,也是對資料技術和人工智能在系統中落地實踐的一部分,這方面也是當前支付寶技術探索的方向之一,

LDC與彈性架構:大促最強武器

對流量進行預估并進行合理的容量規劃之后,接下來就看我們的架構是否能支持流量峰值了,

首先需要說明的是,流量高峰涉及到一個系統的方方面面,支付寶的整個系統極其復雜,而且面向toC和toB都推出了很多業務,即使只關注核心支付系統,也包括支付清算、賬務、核算等子系統,

系統部分組件由通用型的中間件提供支撐,如負載均衡中間件LVS/Spanner、阿里巴巴的分布式快取中間件Tair等,其它則由支付寶自研的SOFAStack金融級分布式中間件負責,

支付峰值的本質是一個高并發問題,互聯網公司解決高并發的思路是橫向擴展水平拆分,用分布式的方式來應對流量洪峰,支付寶也不例外,支付寶很早完成了服務化架構和核心資料庫的水平拆分,成功應對了前幾年的雙十一,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

分布式系統示意圖

這個架構的問題是,所有子應用都需要訪問所有資料庫分庫,但是資料庫連接是有限的,當時主流的商業資料庫,連接都不是共享的,就是說一個事務必須獨占一個連接,而連接卻又是資料庫非常寶貴的資源,不能無限增加,當時的支付寶,面臨的問題是不能再對應用集群擴容,因為每加一臺機器,就需要在每個資料分庫上新增若干連接,而此時幾個核心資料庫的連接數已經到達上限,應用不能擴容,意味著支付寶系統的容量定格了,不能再有任何業務量增長,別說大促,很可能再過一段時間連日常業務也支撐不了了,

這個問題迫在眉睫,從2013年開始,支付寶開始新一輪的架構改造,實施單元化的LDC邏輯資料中心,雙十一的流量峰值,終于還是成功的扛下來了,

一個單元,是一個五臟俱全的縮小版整站,它是全能的,因為部署了所有應用;但它不是全量的,因為只能操作一部分資料,這樣,只要將資料磁區增加單元,就可以提升整個系統的處理性能上限,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

單元化示意圖

但是,并不是所有的資料都能拆分,比如部分底層資料是全域資料,所有單元的應用都需要訪問,并且,支付寶經過近十年建設,有些架構也并不能很好的拆分成單元,在這個前提下,支付寶設計了CRG的單元化架構,既能利用單元化的優點,也能支持現有的架構,

  • RZone(Region Zone):最符合理論上單元定義的 zone,每個 RZone 都是自包含的,擁有自己的資料,能完成所有業務,
  • GZone(Global Zone):部署了不可拆分的資料和服務,這些資料或服務可能會被 RZone 依賴,GZone 在全域只有一組,資料僅有一份,
  • CZone(City Zone):同樣部署了不可拆分的資料和服務,也會被 RZone 依賴,跟 GZone 不同的是,CZone 中的資料或服務會被 RZone 頻繁訪問,每一筆業務至少會訪問一次;而 GZone 被 RZone 訪問的頻率則低的多,CZone 是為了解決異地延遲問題而特別設計的,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

CRG架構示意圖

實施了LDC之后,系統容量實作水平擴展,順利支持了2013年及之后的雙十一流量洪峰,并且系統不再受到單點故障限制,經過完善之后還做到異地多活,最終形成了三地五中心的金融級架構,

理論上,只要無限擴展LDC的計算資源,就可以應對無限大的流量,但是,這樣做的話,大部分機器只有在大促時才能派上用場,平時就是閑置的,造成資源浪費,最好能做到平時用少量資源支持常規流量,大促時經過容量規劃,提前啟用部分空閑或第三方資源應對高峰流量,這就是彈性架構的由來,

2016年,支付寶開始為大促進行彈性架構的改造,彈性架構基于業務鏈路,因為大促時只有部分鏈路的流量激增,因此只需要針對大促關鍵鏈路進行彈性擴容即可,

彈性架構涉及到多個層面的改造,首先是彈性機房和彈性單元,需要在LDC邏輯機房架構上按照業務緯度繼續切片,保證單片業務可以獨立邏輯單元部署,并保持與非彈性單元的聯通性,并且可隨時彈出和回收,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

其次是彈性存盤,包括流水型資料和狀態型資料的彈性,流水型資料包括支付訂單,為了支持這些資料的彈性,創建了彈性位+彈性UID,然后路由根據彈性UID將訂單分配至彈性單元中進行處理,狀態型存盤比如用戶的賬戶余額,進行整體彈出,具體實作方式是通過DB層的主備切換,將主庫壓力分流至備庫,

然后是中間件層面的改造,包括路由、RPC、訊息佇列、流量管理等等,應用層面也需要進行相應的改造,因為每個彈性單元需要做到獨立邏輯單元部署,因此需要從服務到資料進行梳理并剝離,同時添加彈性id等彈性邏輯處理,

除了這些之外,還需要對運維平臺、壓測工具進行相應的改造,

2016年彈性架構上線后,成功支撐了當年雙十一,滿足大促要求和預定目標,節省了機房物理資源,成為應對大促類流量洪峰最有力的武器,

彈性架構里的彈性單元都是新增的集群,但其實還可以進一步的提高資源利用率,方法就是離在線混部技術,因為有些集群是用作離線的大資料分析,但并不是全天24小時都滿負荷作業,當沒有任務時,集群資源利用率極低,如果將離線的應用和在線的業務應用部署在一起,讓大促高峰時段能夠利用這些資源,就可以減少大促期間采購的資源,進一步節省成本,混部技術需要運維的分時調度配合,在不同的時段將資源分配給不同的應用,

從2017年起,支付寶開始嘗試離在線混部和分時調度技術,在大促時利用離線技術所使用的集群資源,大大提升了集群資源利用率,

百萬支付:解決資料庫擴展瓶頸

2016年的雙十一,交易筆數峰值達到12萬筆每秒,這場高并發之戰仍在繼續, 前面提到了很多應對大促的技術手段,但其實漏掉了一個最重要的部分,那就是資料庫,在流量洪峰時,受到壓力最大的就是資料庫,這是因為,在前臺我們看到是一個成功交易,但拆解之后,一個交易可能平均要產生數百甚至上千個請求,資料庫的壓力要遠遠大于我們所能看到的數字,

從最開始,資料庫就一直是支付寶系統的瓶頸之一,在之前,其實已經配合架構改造對資料庫做了諸多升級,除了上面提過的彈性化的改造,還包括:

1. 分庫分表,將原有的交易賬戶庫分離為交易庫和賬戶庫,并通過分布式事務解決資料一致性問題,

2. 資料庫水平拆分,將所有的用戶按照1%粒度分為100份,配合單元化的邏輯隔離,

3. 資料庫讀寫分離、多點寫入、資料復制,通過這些方式,可以大大提升性能,

早年支付寶采用的商業資料庫能進行的改進是有極限的,為了成本考慮,不可能為了一年僅僅幾天的大促活動去采購額外的資料庫系統和設備,

早在2014年的雙十一,支付寶自研資料庫OceanBase就開始承擔10%雙十一核心交易流量,隨后一步步承擔交易、支付、賬務等核心系統的100%流量,經受住了極端條件下的嚴苛考驗,

OceanBase從第一天開始,就計劃成為一個分布式的關系資料庫,也就是天然支持大規模和高并發的場景,但是,支付寶本身的用戶體量太大,再加上雙十一所面臨的的系統壓力太大,到2017年雙十一的時候,即使采用了額外的彈性庫,資料庫CPU壓力也接近上限,成為繼續擴容的瓶頸所在,

2018年的雙十一,支付寶在內部提出了百萬支付架構,意思是這套架構可以支持百萬筆/秒量級的系統壓力,而這套架構的核心,就是OceanBase 2.0分布式磁區方案,

過去架構下的DB擴展,由于DB單機存在極限,且一個UID最多對應一臺機器,所以這里的擴展能力是通過DB新增集群,應用加資料源來實作的,這就會帶來一系列的問題,比如應用的記憶體增長、多資料源導致彈出彈回費時費力、多個DB集群的日常維護成本高等,為解決這個問題,考慮讓DB也能像應用一樣可以動態擴容,且必須突破一個UID最多一臺機器的限制,從而能達到應用和DB同步擴容,不用增加新DB集群就能達到新的容量支撐能力,

由此,基于DB的磁區功能,將DB的擴展性大大增強,避免了必須增加集群來擴容的尷尬,同時對應用進行了相關的升級改造,如全站流水號架構的升級,系列中間件的改造,以及任務撈取場景的改造等,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

OceanBase磁區架構

傳統資料庫彈性架構,將資料進行物理拆分到不同機器,業務在資料訪問/研發/后期維護及資料配套設施上非常繁瑣;同時拆分后資源很難快速回收,且資料拆分及聚合無法實作業務無損,相比于傳統資料庫的彈性架構,OceanBase 2.0架構完全不侵入業務,內部通過磁區實作資料分片的自組織及負載均衡,通過生成列及磁區規則實作自動路由,通過磁區聚合(partition_group)消除分布式事務性能開銷以提升性能,從而實作無損線性伸縮,另資料分片間share_nothing的架構,實作分片故障隔離及單點故障消除的高可用架構,

2018年雙十一,OceanBase 2.0成功上線,并支持了交易和支付的全部流量,并且,基于OceanBase2.0磁區方案的這套架構可以輕松擴展到支持百萬級交易,關于應對流量洪峰的戰役暫時告一段落,

技術保障:大促技術標準化

雙十一是新技術的演練場,那么怎么確定這些技術能有效支撐流量高峰呢?特別在支付寶,涉及到人們的資金安全,一旦發生問題后果極其嚴重,更是要慎之又慎,

2014年,支付寶上線了全鏈路壓測,成為系統化技術驗證的神器;從2017年起,支付寶開始打造自動化和智能化的技術風險防控體系;2018年的雙十一,大促中控上線,大促相關的技術開始走向標準化,

阿里雙11技術詳解:容量規劃+LDC+彈性架構+大促中控等

大促中控示意圖

大促中控也就是一站式的大促保障解決方案,它的目的,就是將之前大促的經驗沉淀下來,形成套路和規范,最終向無人值守方向發展,搞大促不需要技術人再熬夜了,

有了大促中控,可以進行自動化的無損壓測,線上壓測能得到想要的結果的同時,不影響正在進行的業務,它的核心技術能力是對環境、機器、執行緒的隔離,以及在壓測例外時的智能熔斷,

壓測并不是萬能的,有些問題可能在壓測中難以暴露,從2018年起,支付寶還展開了紅藍攻防演練,為了在大促峰值出現例外時,檢查應急策略、組織保障、回應速度是否到位,以及驗證新技術的穩定性是否達標,

對于大促中的資金安全,支付寶自研了實時的資金核對系統,實作峰值的資金安全實時驗證,驗證每一筆資金準確無誤,

當所有技術準備就緒并不是就可以了,每次大促之前還有很多配置需要切換,一旦出錯就會造成嚴重影響,因此支付寶打造了面向終態的技術風險巡檢能力,在大促前一天進行成百上千的配置自動化檢查,確認所有系統進入大促狀態,確保萬無一失,

隨著時鐘漸漸指向零點,大促一觸即發,

未來可期,我們一路同行

總結起來,雙十一流量峰值考驗的是架構的可伸縮性、資料庫的承載能力、運維的強大調度能力,以及完善的技術保障能力,為了確保大促順利完成,需要做的技術準備也遠遠不只文中提到的,諸如全鏈路壓測這樣的幕后功臣還有很多,由于篇幅所限,這里就不再一一介紹了,

支付寶也在持續更新著自己的技術裝備庫,今年的雙十一,支付寶也有幾項新能力得到實戰檢驗:OceanBase 2.2上線,該版本在TPC-C基準測驗中取得第一名,平穩支撐了新大促;自研的Service Mesh 首次登上大促舞臺,目前已經 100% 覆寫支付寶核心支付鏈路,是業界最大的 Service Mesh 集群,

隨著貧訓金融的落地,以及萬物互聯的發展,支付平臺面臨的流量壓力會進一步提升,現在我們看到的峰值,未來也許稀松平常;未來的峰值,也許比今天還要高幾個量級,支付峰值這場戰役仍會繼續下去,其中的技術也將不斷的更新進化,未來雙十一的技術之戰將更加精彩,

如何獲得這份優質的資料呢?

快速領取通道:(點這里)免費獲取!誠意滿滿!!!

Java面試精選題、架構實戰檔案傳送門:https://jq.qq.com/?_wv=1027&k=iWJZw1rp

整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編~

你的支持,我的動力;祝各位前程似錦,offer不斷!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/211145.html

標籤:其他

上一篇:[Python影像處理] 三十.影像量化及采樣處理萬字詳細總結(推薦)

下一篇:炸了!程式員現在沒有這點技能都還不能就業了?(附資料,建議白嫖)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more