<output id="brrn1"><ruby id="brrn1"></ruby></output>
<sub id="brrn1"></sub>
    <sub id="brrn1"></sub>

      <sub id="brrn1"><ruby id="brrn1"><noframes id="brrn1"><big id="brrn1"><del id="brrn1"></del></big>

      <th id="brrn1"><ruby id="brrn1"></ruby></th>

          <delect id="brrn1"><meter id="brrn1"></meter></delect>
        
        

          <output id="brrn1"></output>

            開發

            ?中臺戰略:業務中臺的8個設計原則

            廣告
            廣告

            業務中臺是一個充滿生命力的個體,它承載業務邏輯、沉淀業務數據、產生業務價值,并隨著業務不斷發展進化。它的設計遵循如下圖所示的8個原則。

            業務中臺設計的8大原則

            01 服務松耦合原則

            (1)面向接口實現
            這是服務松耦合的基本要求,即每一個服務都按接口的定義進行實現。服務的消費方不需要依賴某個特定的服務實現,避免服務提供方的內部變更影響到消費方。另外,在服務提供方切換到其他系統時,不影響服務消費方的正常運行。 

            (2)異步事件解耦
            服務間的事件通信采用異步消息隊列來實現。由于有消息隊列這個中介,因此生產者和消費者不必在同一時間都保持實時處理能力,而且消費生產者也不需要馬上等到回復。 

            (3)服務提供者位置解耦
            服務消費者不需要直接了解服務提供者的具體位置信息,例如IP地址、端口。典型解決方法是服務注冊中心,服務提供者啟動時將自己注冊到服務注冊中心,服務消費者通過服務注冊中心查找具體服務提供者來訪問。同時,服務注冊中心可以提供負載均衡及fail-over的能力。 

            (4)版本松耦合
            消費端不需要依賴服務契約的某個特定版本來工作,這就要求服務契約在升級時盡可能提供向下兼容性。

            02 服務依賴原則

            (1)有價值的領域模型

            • 價值導向:確保業務中心的服務都與企業的商業理想保持一致,相關聯。 
            • 簡捷為美:業務邏輯和流程避免復雜化。 
            • 領域洞察:緊貼業務的核心目的,從業務原則指導業務邏輯的設計。

             (2)服務間最小依賴 

            • 高內聚:同一類服務應歸在一起。
            • 低耦合:服務間保持最小聯系。
            • 能力與接口:業務流程和業務邏輯的操作都作為中心服務實現,而提供給外部調用的接口數據模型都會轉化為服務。
            • 識別通用性:識別出每個通用能力的可擴展的類型,從設計上支持它不斷擴展,并在接口定義上滿足其不斷升級的需求。

            (3)能力實體具有層次性

            • 能力與接口:分離接口實體與能力實體。
            • 接口實體與限定元素:將接口實體核心元素與接口操作的限定元素分離。
            • 接口實體的層次結構:建設接口實體和上下文限定元素的層次結構。

            (4)延遲對技術組件的依賴

            • 捆綁依賴:避免在無關的組件技術之間引入新的依賴。
            • 延遲綁定:在使用點才捆綁依賴關系。

            03 服務設計原則

            (1)優化遠程調用
            服務間的遠程調用分為同步調用和異步調用兩種模式。應當分析服務調用場景,選擇較優的調用模式。 

            (2)去掉冗余數據
            盡量去掉接口實體中客戶端不需要的冗余字段,既能減少網絡開銷,又能避免給前端解析帶去復雜性。

            (3)設計粗粒度的服務接口
            服務接口若能與前端一個用例或一個業務場景相對應(粒度較粗)則既能減少遠程調用次數,又能降低學習成本。

             (4)識別并設計通用的服務接口
            由于中心服務不限定應用范圍,因此一般要支持不同的應用。但不同應用在功能豐富性上有很大差異,這就決定了服務接口需要盡可能保證廣泛兼容性。譬如,服務接口的參數和返回值必須是被廣泛支持的較簡單的數據類型。

             (5)隔離服務內部的變化
            避免服務內部的領域模型直接傳導給客戶端。如未能提供合理的隔離措施,則當服務進行內部重構時,勢必導致客戶端頻繁變化。 

            (6)服務接口先行
            詳細規定服務與客戶端雙方對接的內容與形式等,對雙方形成強有力的約束和保障

            (7)服務接口向下兼容
            由于應用的廣泛性,在服務公開發布之后就要保證相當的穩定性,不能隨便重構,即使升級也要盡可能考慮向下兼容性。

            04 服務命名原則

            強烈建議使用服務使用者專業領域內有意義的名稱,優先選用業務概念而不是技術概念。 使用名詞命名服務,使用動詞命名操作。

            05 服務顆粒度原則

            服務應是內聚而完整的,能夠獨立完成一個職責。在服務內部可以是由多個邏輯上密切相關的代碼塊共同組成。

            06 服務的無狀態性原則

            微服務體系的基本要求是服務無狀態。無狀態的服務是可伸縮、高可用性的基礎。

            07 服務操作設計原則

            操作表示業務動作,應當使用具體的業務含義而不是泛型操作來定義操作。相關的最佳實踐如下:

            • 重要的服務不能依賴非重要服務。
            • 任何服務調用都要設定超時時間。
            • 任何服務的調用結果只有三種可能:成功、失敗或未知。
            • 能異步調用的服務盡量使用異步調用,從而提高系統響應速度,降低系統之間的耦合性。
            • 系統拆分時,粒度大小以一個系統3~8個開發人員維護為宜。
            • 系統拆分時,往往先拆分數據服務層,因為數據服務層通常是復用性高的一層。
            • 服務的實現不能有單點。
            • 線上遵循fast-fail原則,避免服務調用時間過長,導致性能下降。fast-fail原則是只要發生錯誤,則調用立即返回。
            • 需要對高壓場景下的服務調用鏈路進行特殊處理,可采用將鏈路縮短、預熱等方式。
            • 服務設計過程中,要避免同類服務由不同服務單元提供。
            • 服務要做到向后兼容,如果無法做到,則需要采取管控機制確保服務消費者升級服務。
            • 服務化架構的變化要使組織的架構能適應這種變化。
            • 在部署服務單元時,要將讀服務和寫服務分離,將核心服務和非核心服務分離,以保證整個服務單元的穩定性和可靠性。
            • 服務化時,要同時考慮安全。
            • 靜態資源也可以實現服務化,實現靜態資源與動態資源分離,從而提高性能。
            • 通過在外層系統埋點,可以實現面向終端用戶服務的精細管理,比如服務的容量、服務的性能等。
            • 需要將每個業務領域的通用規則沉淀成服務。

            08 服務約束原則

            • 上可依賴下;
            • 下不可依賴上;
            • 上可跨級依賴下;
            • 平級可允許單向調用,堅決禁止循環依賴;
            • 高級別不可依賴低級別;
            • 簡單就是美;

            重要的服務不能依賴非重要服務。

            文章摘自:機械工業出版社《中臺戰略:中臺建設與數字商業》 2019年9月出版

            原文鏈接:https://mp.weixin.qq.com/s/yArlYBvIuZaEKJwm_Y5Z_g

            最干貨的java+分布式技術公眾號,兼及研發管理。本號專家陣容:螞蟻金服右軍、易寶CTO陳斌、米么金服總監李偉山、奧琪金科首席架構曲健、螞蟻金服高級技術專家張翔、美團高級技術專家楊彪等。

            中國頂級程序員圖鑒,最后一個厲害了!

            上一篇

            技術蒼穹與平臺沃土:華為構筑產業數字化的太極之道

            下一篇

            你也可能喜歡

            ?中臺戰略:業務中臺的8個設計原則

            長按儲存圖像,分享給朋友

            ITPUB 每周精要將以郵件的形式發放至您的郵箱


            微信掃一掃

            微信掃一掃
            亚洲黄色片视频,光棍电影韩国伦理网,女神吧,伊人电影在线观看