開發當中要盡量避免,一些無限制的服務拆分,導致服務數量的龐大.架構要保持乙個度,其中人力,服務邊界,效能等等都要考慮到,本文記錄一次,冗餘架構拆分帶來的效能損耗.乙個排程服務(c++)負責下發請求到對應的下游服務,獲取對應的結果.由於下游服務是乙個業務的整體,就加了乙個閘道器的模組是基於php寫的.
1.首先閘道器這麼重要的業務不應該那一些效能較低的語言去構建,應考慮效能高的語言編寫,否則**效率低下
2.閘道器的服務以模組功能較少,其中由於我們的場景是內網請求不涉及許可權的校驗,流量控制(在排程服務控制)等.只是做了協議轉換,模組的定位不清晰,與排程服務邊界不清晰.
3.問題定位的難度會有增加,請求鏈越長對問題定位越不利.
將閘道器模組的功能放入排程模組.從架構上看,這塊的功能本身就可以放入到排程服務,反而使服務邊界更加清晰.
優化後的架構
1.效能提公升,顯而易見c++重寫了php閘道器的功能,而且減少了一層網路排程.
2.穩定性的提公升,之前閘道器服務不穩定會直接影響到對應的業務處理.
3.問題的定位,當一次請求的服務越長,就增加了定位問題的難度.就會有很多的不確定性.
架構設計不是微服務化拆分的越細越好,更是權衡的結果.保持架構的簡潔性是很必要的,減少業務流程呼叫步長.
salesforce 架構設計 從架構設計到架構師
因為碎片化的時間多了,所以開始刷起某乎了,關注了架構相關的板塊,也順手回答了一些問題。發現有很多同道中人正在經歷著我前兩年經歷的階段,對於做架構沒有相對具象的一些理解,更沒有系統化的認識。所以把最近回答的一些內容整理一下,權當記錄,留給3年後的自己 按慣例,容許我裝x開頭 一 架構的定義 在軟體開發...
mysql架構設計 初識mysql架構設計
一 應用系統如何與mysql進行一次互動?最開始接觸jdbc的時候,我們系統如何完成一次sql操作呢?第一步,建立資料庫連線 第二步,操作sql 第三步,釋放連線。但是每次建立與資料庫的連線非常耗時和資源,所以我們加入了連線池的概念。第一步的獲取連線是從連線池中獲取乙個可用的連線,第三步的釋放連線不...
軟體架構設計 架構師筆記,軟體架構設計
架構設計是分與合的藝術 通讀並總結了溫昱老師的 軟體架構設計 並有幸聽過李哲珠博士對架構設計的講解。對其讀後的自我領悟並提煉出核心內容分享出來,希望從思想高度上能提公升你對軟體架構設計的認知。架構設計 架構設計不等於框架設計,框架也可能有架構,所有的原子元件 被拆分的模組 都需要架構設計,所有元件可...