摘要:并根據調用方指定的負載均衡策略將被調節點信息返給調用方。并且被調方信息緩存負載均衡以及失效節點剔除都在中完成。
作者: 鐘科
一.TSeer簡介TSeer是一套服務注冊發現容錯的方案,是對Tars名字服務功能的輕量化。在騰訊瀏覽器、應用寶、管家、手機書城、騰訊文學、廣點通等眾多業務中廣泛采用,目前日均承載百億級的請求量。
TSeer輕巧靈便,對業務的侵入性低,非tars服務亦可無縫接入。在服務發現的核心功能之上,Tseer還支持多種負載均衡算法,提供可靠的故障容錯策略,可有效解決業務跨地區跨機房調用等難題,極大提升服務的可用性和調用質量,是微服務框架中優秀的名字服務解決方案。
TSeer擁有web管理界面和API接入兩種方式可供用戶根據需求自由選擇,通過代理節點和代理服務器機制為需要頻繁發布變更的業務提供透明的服務發現功能,學習成本很低,操作也很方便,對于業務維護人員十分友好。
二.研發背景在傳統的單體式應用中,變更發布相對較少,系統中的網絡位置也很少變化,偶爾的變更也可以通過手動更改配置的方式來應對。但是在當前海量服務的大環境下,這種架構已經無法高效穩定的支撐高速增長的業務。越來越龐大的分布式服務集群和微服務框架已經逐漸成為主流。
但是新型架構為業務提供更好支撐的同時,頻繁的發布更新與動態伸縮也導致了網絡位置的頻繁變化,在這種情況下業務維護人員手動更改配置這種大規模重復性工作不僅增大了出錯的風險,其低效也會限制業務的高速發展。往往配置還沒改完,新的變更就需要發布了。所以就必須要一個自動化的服務發現工具來解決這些問題。
然而這些也并不是問題的全部。在保證訪問成功的前提下,響應時間作為服務質量中最重要的指標,是影響業務發展最關鍵的一環。多業務集之間復雜的調用關系再加上跨地區跨網絡調用等其他因素,響應時間達不到預期是持續困擾整個業務發展周期的棘手問題。與此同時,無論是采用物理機還是虛擬機,節點掛掉導致的不可用時有發生,如何有效容錯也是亟待解決的問題。
基于這些問題,我們開發了TSeer。
整個Tseer的結構分為四部分:TseerServer、業務客戶端(主調)、業務服務端(被調)、web管理。
? TseerServer
TseerServer是整個Tseer的樞紐與核心模塊。 當新節點上線時,需要先通過WEB管理平臺在Tseer服務集群注冊,將其網絡位置信息記錄在Tseer系統中。當需要對節點進行下線或者其他修改時,也需要在WEB管理平臺就行相關操作。被調節點也會定時上報心跳給TseerServer,server端會屏蔽心跳超時的節點使其無法被調用。
? 業務客戶端
業務客戶端是需要調用其他服務的節點,稱之為主調,是服務發現功能的使用者。 Tseer為業務客戶端提供了:安裝Agent與API調用兩種方式來從TseerServer獲得需要調用的服務(被調)的地址來完成調用。
? 業務服務端
業務服務端是需要被調用的節點,稱之為被調,是服務的提供者。 當新節點上線時,被調需要在TseerServer注冊。不論同一個被調服務集群有多少個節點,注冊時該服務集群都需要注冊一個統一的名字。主調在調用邏輯中只需要寫明需要調用的服務的名字,Tseer會根據被調名字來返回被調地址。當被調需要擴容時,只需要把新節點加在該服務對應的名字下面即可。業務人員無需管理被調集群下繁多的服務節點信息,十分方便。
? Web管理
業務信息及節點路由信息的增刪改查都是通過web管理界面操作,簡便快捷直觀。甚至agent安裝包都可以通過web平臺更新發布。詳細使用方式可參考github上TSeer項目的使用文檔。
1.負載均衡
當同一業務集群中某些節點被頻繁調用而另一些節點沒有承擔合理的負載時,不僅業務的服務質量和響應時間會大幅下降,同時也會造成資源的浪費。
Tseer系統中,當主調發起調用時,會針對被調名字下所有可用節點為調用提供四種負載均衡方式來保障各個節點的合理負載,分別是
? 輪詢
? 隨機
? 靜態權重
? 一致性哈希
用戶還可以使用調用分組的方式來自定義負載均衡實現,調用分組會在下文中提到。
2.故障容錯
為了解決節點故障導致的業務不可用與服務質量降低,Tseer還提供了可靠的故障容錯機制。
當主調進行一次調用之后,會將調用結果上報。如果調用失敗Tseer會暫時將該節點屏蔽來避免故障節點被反復調用,Tseer會定時探測被屏蔽的節點,當發現故障節點恢復服務時,會重新將其激活。
對于任意被調節點,滿足下列條件之一則屏蔽該節點:
1.在一個檢測周期(60秒)內調用失敗次數達到2次,且調用錯誤數占總調用次數的50%以上
2.在5秒內連續調用失敗5次以上
對于被屏蔽的節點Tseer Agent/Api將每隔30秒對已屏蔽的節點進行重試。
同時當Tseer故障時,主調也能根據緩存信息繼續調用。
3.調用優化
Tseer為調用邏輯提供IDC分組、Set分組、All三種方式來解決跨地區調用等問題。
? All
為主調提供所有可用被調節點地址
? IDC分組
IDC分組可以近似的看作就近接入。
該方法按照兩個層次進行劃分。第一個是物理小組,是最小的組調度單位,即按照節點所在的機房或者區域分配統 一的組名。第二個是物理小組組成的邏輯組,可以理解為按照更大的區域來劃分的統一的組名。
針對IDC的邏輯分組,Tseer還定義了調用優先級策略。即部分邏輯組不可用時,會按照優先級策略返回可用被調節點地址列表。
? Set分組
IDC分組主要是在區域概念上去劃分分組,實現就近訪問策略,在后臺服務架構中,業務規模達到一定數量時,如果要對某幾個服務節點實現根據容量、灰度,分區域管理的隔離控制,IDC分組是無法滿足的,而Set分組則是對IDC分組的再細化。
Set分組的命名規則為: Set名.Set地區.Set組。其中Set組是最小區分單元的名稱,支持通配符*,表示Set地區下的所有分組。比如0,1,2,3,4或者a,b,c,d。
Set分組的調用邏輯如下:
1.主調(客戶端)和被調(服務端)都啟用了Set分組,并且Set名要一致才認為是啟用同SET內
2.啟用Set分組的主調和被調只能訪問同Set內的節點
3.主調啟用Set分組,被調沒有啟用Set分組,則默認會走按IDC分組查詢的邏輯(前提是啟用了IDC分組)
4.兩種接入方式
根據服務客戶端是否在其物理機中部署Tseer Agent,Tseer的使用方式可以分為Agent 和Tseer API兩種方式:
? Agent 方式
名字路由
Agent 方式下,Tseer Agent會定期緩存被調方的信息。并根據調用方指定的負載均衡策略將被調節點信息返給調用方。如果調用方希望通過服務特性來實現負載均衡,Tseer也支持按照調用方指定的分組策略將被調的組信息返給調用方。
數據上報
每次調用完成后,調用方需要調用Tseer Api提供的上報接口上報調用信息,調用信息將由Tseer Api即使上報至Tseer Agent。Tseer Agent將根據調用信息剔除失效被調節點。
容錯 使用Agent 方式時,如果Tseer Agent失效,Tseer Api將會從內存中返回已訪問過的節點給主調,如果Tseer Api緩存失效,此時Tseer Api將會從本地磁盤中的緩存文件恢復緩存信息提供給主調。需要注意的是此時Tseer Api提供給主調服務的信息為有損信息,Tseer Api不保證節點一定健康。
? Tseer Api方式
名字路由
Agent 方式與Tseer Api方式的區別在于是否需要在主調的宿主機中部署Tseer Agent。Tseer Api會直接訪問Tseer server。并且被調方信息緩存、負載均衡以及失效節點剔除都在Tseer Api中完成。
Tseer Api會定時拉取Tseerserver的后端信息并屏蔽不可用的被調節點。
容錯
Tseerserver故障時,Tseer Api會將內存中緩存的信息返回給主調。當內存緩存不可用時,Tseer Api將會用本地磁盤中的緩存恢復內存緩存。
Agent Api方式 與Tseer Api方式對比
TSeer是一套服務注冊發現容錯的方案,是對Tars名字服務功能的輕量化,輕巧靈便,對業務的侵入性低。在服務發現的核心功能之上,Tseer還支持多種負載均衡算法,提供可靠的故障容錯策略,可有效解決業務跨地區跨機房調用等難題,極大提升服務的可用性和調用質量,是微服務框架中優秀的名字服務解決方案。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61973.html
摘要:從用戶成為股東在基金會的天從年開始為的初始版本打補丁,堵俊平已經在社區深耕了近年,年月成為中國第一個的年月,年月榮升。他們有權選舉董事會,成為董事會選舉的候選人。基金會成員對基金會直接負責,在多個項目中做出貢獻,擁有董事會的投票權。 3月27日,騰訊云大數據及人工智能產品研發的專家研究員堵俊平受邀成為 Apache 軟件基金會Member(Apache Softeware Founda...
摘要:目前電商領域有兩款比較出名的開源電商網站解決方案,分別是基于開發框架,代號為的開源項目,以及基于的作為開源項目的開發成員之一,今天我想通過本文,給大家介紹一下我們平時購物時最常使用到的功能之一,添加產品到購物車的技術實現。 目前電商領域有兩款比較出名的開源電商網站解決方案,分別是基于 Angular 開發框架,...
摘要:產品概述產品概述產品概述本篇目錄產品特點產品特點功能簡介功能簡介操作指南操作指南開發指南開發指南任務調度任務調度產品價格產品價格簡稱,是推出的云上智能化輕量級的大數據基礎服務平臺,能夠幫您快速構建起大數據的分析處理能力。 產品概述本篇目錄產品特點功能簡介操作指南開發指南任務調度產品價格UCloud Smart Data Platform(簡稱 USDP),是 UCloud 推出的云上智能化、...
閱讀 1583·2021-10-18 13:35
閱讀 2362·2021-10-09 09:44
閱讀 816·2021-10-08 10:05
閱讀 2718·2021-09-26 09:47
閱讀 3564·2021-09-22 15:22
閱讀 432·2019-08-29 12:24
閱讀 1999·2019-08-29 11:06
閱讀 2857·2019-08-26 12:23