架構設計

1/14ページ

DDD之戰略戰術設計

DDD將一個軟體系統的核心業務功能集中在一個核心域裡面,其中包含了實體、值物件、領域服務、資源庫和聚合等概念。在此基礎上,DDD提出了一套完整的支撐這樣的核心領域的基礎設施。此時,DDD已經不再是“物件導向進階”那麼簡單了,而是演變成了一個系統工程。 所謂領域,即是一個組織的業務開展方式,業務價值便 […]

JVM 效能調優實戰之:一次系統效能瓶頸的尋找過程

玩過效能優化的朋友都清楚,效能優化的關鍵並不在於怎麼進行優化,而在於怎麼找到當前系統的效能瓶頸。效能優化分為好幾個層次,比如系統層次、演算法層次、程式碼層次…JVM 的效能優化被認為是底層優化,門檻較高,精通這種技能的人比較少。筆者呆過幾家技術力量不算弱的公司,每個公司內部真正能夠進行 […]

壓力測試關心的幾個指標

一:併發使用者數  1,這個不是多說了,可簡單理解為併發執行緒數  二:總請求次數 1,總請求次數 = 併發使用者數 * 每使用者請求次數 2,當‘每使用者請求次數 = 1’時,併發使用者數 = 總請求次數 3,這樣的壓力測試會給伺服器瞬間的壓力,但沒有永續性 4,並不能反映出伺服器在真正壓力下的處 […]

千萬資料的分庫分表方案

這是專案中有一定量級的資料或使用者,都會遇到的一個問題,故記錄一下 自己的開源專案集合,見這裡 單表資料量達到1000W以後,就要拆了 背景情況 使用者表達到了 幾千萬級別,在做很多操作都比較吃力,.所以,考慮對其進行分表. 常用的切分方案 資料的切分(Sharding)根據其切分規則的型別,可以分 […]

彙總一下2017年自己的開源專案(續)-專案實戰

去年年底參與開發一個網際網路廣告專案,主要負責伺服器端的架構設計、技術選型、技術落地等 目前月活千萬 ,給使用者返利過千萬 ,PV五千萬 ,日介面請求量億級別 ,人均使用時長超過45分鐘 ,次留50%以上,月留25%以上等 這一套架構功能中,除了IOS和Android端,其他的前期來自於我個人開發, […]

什麼是可測試性?

以下內容來自《Microsoft .NET企業級應用架構設計》 Bruce Eckel曾提出一句流行的口號,表明軟體測試的重要性: 若軟體沒有經過測試,那麼可定無法完成工作。 測試會位於不同的層次上,比如用單元測試來判斷軟體的各個獨立單元是否符合功能性需求,用整合測試來判斷軟體能否適應執行環境和基礎 […]

分散式事務最終一致性常用方案

目前的應用系統,不管是企業級應用還是網際網路應用,最終資料的一致性是每個應用系統都要面臨的問題,隨著分散式的逐漸普及,資料一致性更加艱難,但是也很難有銀彈的解決方案,也並不是引入特定的中介軟體或者特定的開源框架能夠解決的,更多的還是看業務場景,根據場景來給出解決方案。根據筆者最近幾年的瞭解,總結了幾 […]

微服務究竟該如何理解

在談微服務之前我們需要先了解兩個概念:SOA和ESB。 SOA 面向服務的架構(SOA)是一個元件模型,它將應用程式的不同功能單元(稱為服務)通過這些服務之間定義良好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平臺、作業系統和程式語言。這使得構建在各種各樣的系統中 […]