中間件技術及雙十一實踐·服務框架篇 分佈式服務框架——分佈式服務的組織者

綜述

06/07年以後,隨着淘寶用戶數量和網站流量的增長,應用系統的數量和複雜程度也急劇增加。諸多前臺系統都需要使用一些公共的業務邏輯,這些業務邏輯通常具有共性的東西,比如,獲取用戶信息或查詢寶貝詳情等。如果將這些業務邏輯在各個系統內部都實現一遍,則大大增加了開發成本和後期維護成本。於是,像服務框架這類的中間件產品就應運而生。服務框架幫助各個系統將那些相似的業務邏輯抽離出來,單獨部署,而前臺系統在需要調用這些業務邏輯時,只需要通過服務框架遠程調用即可,大大節約了前端系統的開發成本,也提高了系統的可維護性和可擴展性。

2.1、HSF簡介

HSF是淘寶的分佈式服務框架。服務框架從分佈式應用層面以及統一的發佈/調用方式層面爲業務系統提供支持,從而可以讓他們很容易地開發分佈式應用並提供和使用公用功能模塊,而不用考慮分佈式領域中的各種細節技術,例如遠程通訊、性能損耗、調用的透明化、同步/異步調用方式的實現等等問題。

服務框架的實現有三種角色:服務提供者、服務消費者和註冊中心。服務提供者在服務可用的前提下,將地址註冊到註冊中心。服務消費者啓動時,會訂閱註冊中心的相關服務,獲取服務地址,通過一定的負載均衡策略調用服務。由於註冊中心這個軟負載集羣的存在,服務提供者和服務消費者可以任意擴容和下線,註冊中心可以實時將提供者地址的變更推送給消費者。

服務治理

服務治理是服務框架的核心功能。所謂服務治理,是指服務的提供方和消費方達成一致的約定,保證服務的高質量。服務治理功能,可以解決將某些特定流量引入某一批機器,以及限制某些非法消費者的惡意訪問,和在提供者處理量達到一定程度時,拒絕接受新的請求等功能。

2.2、HSF雙11準備與優化

在雙11中,HSF主要通過精簡日誌輸出、流量限制、解決應用依賴衝突等措施,保證了服務的穩定可靠。

  • 精簡日誌輸出

消費者在調用過程中,容易因爲網絡問題或服務提供方等原因引起調用失敗。如果沒有足夠的日誌,有時候排查問題會很困難。因此,服務框架在生產環境使用時,往往將日誌級別設置比較低或打印較多日誌,記錄下足夠多的信息。這在平時沒有問題,而且在遇到問題時也有足夠的信息來排查問題。但是日誌打印本身耗費性能,在雙11這種高峯調用期間,儘量要減少日誌的輸出。爲了達到靈活控制日誌輸出的目標,服務框架優化了日誌打印,精簡了日誌輸出。

  • 流量限制

雖然很多應用設置了流量限制等規則,但平時的流量遠遠低於閾值,只有在雙11這種流量高峯,纔會起到效果。在雙11之前,我們檢查了線上所有的限流規則,發現有不少配置錯誤或者配置不合理的情況,其中有些是由於HSF對於一些默認參數設置不合理造成的。通過性能測試,將不合理的規則和參數進行改正。

  • 解決應用依賴衝突

由於淘寶業務發展迅速,前端應用需要依賴越來越多的其他系統,這很容易造成應用依賴的衝突。服務框架引入了Pandora容器,對應用進行了依賴的隔離,防止應用和服務框架的依賴相互衝突。

小結

HSF已經經受了淘寶各種複雜、高併發的調用場景。今年來,HSF在易用性、服務治理和性能上有了很大的改進,是很穩定的分佈式服務框架。作爲淘寶中間件團隊最早誕生的中間件框架之一,HSF將在未來繼續發揮其巨大的作用。

系列文章:

中間件技術及雙十一實踐之中間件總體介紹http://jm-blog.aliapp.com/?p=3359

中間件技術及雙十一實踐之軟負載篇http://jm-blog.aliapp.com/?p=3450

中間件技術及雙十一實踐·服務框架篇http://jm-blog.aliapp.com/?p=3462

中間件技術及雙十一實踐·EagleEye篇http://jm-blog.aliapp.com/?p=3465

如果覺得內容還行,請分享給更多的人...

轉發:中間件技術及雙十一實踐之中間件總體介紹

轉發:中間件技術及雙十一實踐之軟負載篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章