06/07年以後,隨著**使用者數量和**流量的增長,應用系統的數量和複雜程度也急劇增加。諸多前台系統都需要使用一些公共的業務邏輯,這些業務邏輯通常具有共性的東西,比如,獲取使用者資訊或查詢寶貝詳情等。如果將這些業務邏輯在各個系統內部都實現一遍,則大大增加了開發成本和後期維護成本。於是,像服務框架這類的中介軟體產品就應運而生。服務框架幫助各個系統將那些相似的業務邏輯抽離出來,單獨部署,而前台系統在需要呼叫這些業務邏輯時,只需要通過服務框架遠端呼叫即可,大大節約了前端系統的開發成本,也提高了系統的可維護性和可擴充套件性。
hsf是**的分布式服務框架。服務框架從分布式應用層面以及統一的發布/呼叫方式層面為業務系統提供支援,從而可以讓他們很容易地開發分布式應用並提供和使用公用功能模組,而不用考慮分布式領域中的各種細節技術,例如遠端通訊、效能損耗、呼叫的透明化、同步/非同步呼叫方式的實現等等問題。
服務框架的實現有三種角色:服務提供者、服務消費者和註冊中心。服務提供者在服務可用的前提下,將位址註冊到註冊中心。服務消費者啟動時,會訂閱註冊中心的相關服務,獲取服務位址,通過一定的負載均衡策略呼叫服務。由於註冊中心這個軟負載集群的存在,服務提供者和服務消費者可以任意擴容和下線,註冊中心可以實時將提供者位址的變更推送給消費者。
服務治理
服務治理是服務框架的核心功能。所謂服務治理,是指服務的提供方和消費方達成一致的約定,保證服務的高質量。服務治理功能,可以解決將某些特定流量引入某一批機器,以及限制某些非法消費者的惡意訪問,和在提供者處理量達到一定程度時,拒絕接受新的請求等功能。
在雙11中,hsf主要通過精簡日誌輸出、流量限制、解決應用依賴衝突等措施,保證了服務的穩定可靠。
消費者在呼叫過程中,容易因為網路問題或服務提供方等原因引起呼叫失敗。如果沒有足夠的日誌,有時候排查問題會很困難。因此,服務框架在生產環境使用時,往往將日誌級別設定比較低或列印較多日誌,記錄下足夠多的資訊。這在平時沒有問題,而且在遇到問題時也有足夠的資訊來排查問題。但是日誌列印本身耗費效能,在雙11這種高峰呼叫期間,盡量要減少日誌的輸出。為了達到靈活控制日誌輸出的目標,服務框架優化了日誌列印,精簡了日誌輸出。
雖然很多應用設定了流量限制等規則,但平時的流量遠遠低於閾值,只有在雙11這種流量高峰,才會起到效果。在雙11之前,我們檢查了線上所有的限流規則,發現有不少配置錯誤或者配置不合理的情況,其中有些是由於hsf對於一些預設引數設定不合理造成的。通過效能測試,將不合理的規則和引數進行改正。
由於**業務發展迅速,前端應用需要依賴越來越多的其他系統,這很容易造成應用依賴的衝突。服務框架引入了pandora容器,對應用進行了依賴的隔離,防止應用和服務框架的依賴相互衝突。
hsf已經經受了**各種複雜、高併發的呼叫場景。今年來,hsf在易用性、服務治理和效能上有了很大的改進,是很穩定的分布式服務框架。作為**中介軟體團隊最早誕生的中介軟體框架之一,hsf將在未來繼續發揮其巨大的作用。
Beanstalkd訊息中介軟體入門及技術指南
beanstalk,乙個高效能 輕量級的分布式記憶體佇列系統,最初設計的目的是想通過後台非同步執行耗時的任務來降低高容量web應用系統的頁面訪問延遲,支援過有9.5 million使用者的facebook causes應用。參考 yum install beanstalkd 檢視版本 beansta...
訊息中介軟體的技術選型
rabbitmq activemq和zeromq都是極好的訊息中介軟體,但是我們在專案中該選擇哪個更適合呢?很多開發者面臨這個煩惱。下面我會對這三個訊息中介軟體做乙個比較,看了後你們就心中有數了。rabbitmq是amqp協議領先的乙個實現,它實現了 broker 架構,意味著訊息在傳送到客戶端之前...
activeMq中介軟體服務配置策略
activemq.xml 配置詳解 2 總結 想要使用非同步,在brokerurl中增加 jms.alwayssyncsend false jms.useasyncsend true,如果設定了alwayssyncsend true系統將會忽略useasyncsend設定的值都採用同步 1 當alw...