漫畫:SOA中怎樣確定服務的粒度?
一般系統的服務劃分有以下兩種維度:
按模組劃分
這個比較適用於偏業務的場景:複雜的系統,最好先按業務領域橫向拆分成可獨立部署的子系統,每個子系統內部再按技術縱向拆分成不同的子模組。
按角色劃分
這個比較適用於基礎服務類的場景:一個大系統,每個服務看起來關聯都很緊密,存在相互的呼叫關係。這時候可以考慮它們各自承擔的角色和使命。
核心原則
單一職責:能不能用一句話說清楚這個服務的職責?非要分成兩句話,那就分成兩個服務。
在核心原則的基礎上,符合下面的原則是一個比較好的實踐:
鬆散耦合原則
可複用性原則
服務自治原則
可發現性原則
可組合性原則
服務自治、可發現性相對難理解一些,展開一下。
服務自治
當一個服務的邏輯單元由自身的領域邊界內所控制,不受其他外界條件的影響(外界條件帶有不可預測性),且執行環境是自身可控,完全自給自足,我們認為這個服務是自治的。
自治的服務自身可以很好的對穩定性做把控。
可發現性
因為服務是被用來複用的,如果在服務設計過程中,並不能發現一個已經存在的服務,而需要重新建立多個同樣邏輯元旦的服務,會極大增加管理和維護成本。
服務發現主要有兩種:
1.設計時發現(人)
服務設計人員和研發人員在研發一個新的服務時,可以通過搜尋服務倉庫的後設資料資訊,檢視服務倉庫是否已存在此服務,沒有才重新開發。
2.執行時發現(程式)
服務的消費者可以通過服務註冊中心查到特定服務的介面呼叫地址呼叫。
要根據系統的規模和人員配置情況。
比如如果系統一個系統的日活躍使用者在萬級和千萬級,粒度肯定是不一樣的。同樣,基於系統規模帶來的產出,那麼開發人員數量也會相應不同。比較好的一個實踐是一個人獨立負責一個到兩個服務。多人維護一個服務,互動成本非常高。
關注靜兒公眾號,不定期漫畫技術推送~
相關文章
- SOA服務治理方案
- SOA與服務化框架框架
- 面向服務的整車E/E架構(SOA)開發諮詢服務架構
- 服務端漫遊服務端
- 怎樣監測微型的網站服務網站
- 怎樣開啟mongodb服務端?MongoDB服務端
- 面向服務的整車E/E架構(SOA)設計開發諮詢服務架構
- 網站設計時,網站主題怎樣確定?網站
- 千億級HttpDNS服務是怎樣煉成的httpdDNS
- 通俗地理解面向服務的架構(SOA)以及微服務之間的關係架構微服務
- 腐漫網,腐女漫畫網,漫畫網站網站
- Jtti:怎樣正確處理Redis中的海量資料JttiRedis
- 漫畫賞析:Linux 核心到底長啥樣Linux
- SummerSoC 2020:基於領域驅動的服務設計(SOA/微服務) – Stefan Kapferer微服務
- 怎樣正確理解volatile?
- 第一步:設定正確的網路卡服務順序
- 暴走漫畫
- 雲端計算服務包括哪三種服務?怎麼定義?
- IDC售後服務怎樣減少差評?
- 在微服務中引入ESB使SOA重獲新生微服務
- Redis 記憶體滿了怎麼辦?這樣設定才正確!Redis記憶體
- godaddy雲郵服務怎麼樣?儲存大嗎?Go
- 人體肌肉怎麼畫?怎樣才能畫好人體肌肉?
- 我們怎樣把握短視訊本地生活服務的風口?
- 怎樣選擇優質的蘋果企業簽名服務蘋果
- Laravel 是怎樣防止你的定時任務重複執行的Laravel
- canvas預設畫布的尺寸是多大?怎樣設定才能不會變形?Canvas
- 漫畫:什麼是中間人攻擊
- Ai繪畫怎麼才能生成好看的漫畫圖?詳細教程讓你免費AI作畫!AI
- 原畫人場景原畫教程,畫場景的思路是怎麼樣的?
- 定時任務crond服務
- Soa: 一個輕量級的微服務庫微服務
- Spring Boot微服務是一種安全的SOASpring Boot微服務
- 餐飲小程式怎麼樣可以更好服務客戶?
- 【漫畫講技術】CSS系列漫畫教程(11-15講)CSS
- 【漫畫講技術】CSS系列漫畫教程(6-10講)CSS
- 【資料分發服務DDS】軟體定義汽車【三】-SOA 基礎軟體框架與參考實現框架
- ICCV 2019 | 基於醫療影像的早期診斷中不確定樣本的檢出