中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

寫在前面

當(dāng)前,傳統(tǒng)企業(yè)的IT系統(tǒng)以單體架構(gòu)為主,在面對互聯(lián)網(wǎng)業(yè)務(wù)的沖擊時,系統(tǒng)架構(gòu)的性能瓶頸逐漸顯現(xiàn)。云計(jì)算、Docker、DevOps、持續(xù)交付等概念的深入人心,以Spring Cloud為代表的微服務(wù)框架日漸興起,微服務(wù)架構(gòu)成為傳統(tǒng)IT架構(gòu)轉(zhuǎn)型的集中趨勢。

在微服務(wù)化的行業(yè)洶涌浪潮里,騰訊云歷經(jīng)五年磨礪,整合外部開源框架和內(nèi)部PaaS平臺,完成了王者榮耀全球同服的毫秒級延時和春節(jié)紅包的高并發(fā)交易等性能需求,以日5萬億次的驚人調(diào)度次數(shù),支撐騰訊內(nèi)部海量業(yè)務(wù)的構(gòu)建與發(fā)展。

微服務(wù)改造的核心思想,指通過IT架構(gòu)的微服務(wù)化,將復(fù)雜的單體架構(gòu),重組為小而美的獨(dú)立服務(wù),從而降低系統(tǒng)的復(fù)雜性,讓企業(yè)更便捷的構(gòu)建基于云計(jì)算的大規(guī)模分布式架構(gòu)。

本文結(jié)合騰訊云微服務(wù)架構(gòu)體系的構(gòu)建原理、技術(shù)選型和改造實(shí)踐,為你講講如何解決微服務(wù)部署、實(shí)施、監(jiān)控余位中面臨的難題。

傳統(tǒng)企業(yè)IT架構(gòu)面臨的痛點(diǎn)

單體架構(gòu)通常在一個歸檔包里容納了所有功能的應(yīng)用程序,整個項(xiàng)目包含的模塊種類繁雜,模塊邊界界定模糊,每個模塊之間具有強(qiáng)耦合性,項(xiàng)目復(fù)雜。大多數(shù)傳統(tǒng)企業(yè)在上云的過程中,由于單體架構(gòu)的固定屬性,會面臨著 IT系統(tǒng)復(fù)雜、升級迭代慢、運(yùn)維擴(kuò)展性差、海量用戶支撐能力薄弱、數(shù)據(jù)孤島等一系列問題。

如傳統(tǒng)企業(yè)在做電子政務(wù)、智能零售、工業(yè)4.0等智能化轉(zhuǎn)型,或者想要開發(fā)人臉識別/支付系統(tǒng)、關(guān)聯(lián)小程序等熱門應(yīng)用時,應(yīng)用體系的改變以及用戶量級的爆發(fā)式增長,都會對單體系統(tǒng)的性能瓶頸會提出極大的挑戰(zhàn)。

不同于構(gòu)建單一、龐大的應(yīng)用,微服務(wù)架構(gòu)以小型服務(wù)的方式開發(fā)獨(dú)立應(yīng)用系統(tǒng),將應(yīng)用拆分為一套小且互相關(guān)聯(lián)的服務(wù),每個小型服務(wù)都運(yùn)行在自己的進(jìn)程中,各服務(wù)之間采用HTTP資源API輕量的機(jī)制進(jìn)行通信。相對于單體架構(gòu),微服務(wù)體系在迭代速度、系統(tǒng)吞吐量、擴(kuò)展性以及技術(shù)棧的多樣性上均有明顯的優(yōu)勢。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

由于單體架構(gòu)的缺陷日益明顯,越來越多的公司采用微服務(wù)架構(gòu)范式構(gòu)建復(fù)雜應(yīng)用。但在微服務(wù)的部署實(shí)施過程中,亦存在著架構(gòu)與運(yùn)維復(fù)雜、部署實(shí)施難度較高、問題定位困難等挑戰(zhàn)。

  • 運(yùn)維要求較高。 更多的服務(wù)意味著更多的運(yùn)維投入,單體架構(gòu)中只需要保證一個應(yīng)用的正常運(yùn)行;而在微服務(wù)中,需要保證幾十甚至幾百個服務(wù)的正常運(yùn)行與協(xié)作;
  • 分布式固有的復(fù)雜性。 使用微服務(wù)構(gòu)建的是分布式系統(tǒng),對于一個分布式系統(tǒng),系統(tǒng)容錯、網(wǎng)絡(luò)延遲、分布式事務(wù)等對于開發(fā)者而言都是巨大的挑戰(zhàn);
  • 接口調(diào)整成本高。 微服務(wù)之間通過接口進(jìn)行通信,如果修改某個微服務(wù)的API,可能所有使用了該接口的微服務(wù)都需要做調(diào)整;
  • 重復(fù)勞動。 很多服務(wù)可能都會使用到相同的功能。而這個功能并沒有達(dá)到分解為一個微服務(wù)的程度,這個時候,可能各個服務(wù)都會開發(fā)這一功能,導(dǎo)致代碼重復(fù)。

騰訊云微服務(wù)架構(gòu)體系及其技術(shù)選型策略

互聯(lián)網(wǎng)企業(yè)的微服務(wù)轉(zhuǎn)型經(jīng)驗(yàn),可為傳統(tǒng)行業(yè)開發(fā)者提供經(jīng)驗(yàn)參考。騰訊云基于自身的海量業(yè)務(wù)需求,通過IT架構(gòu)的微服務(wù)化,將緊耦合的塔式架構(gòu),重組為小而簡的獨(dú)立服務(wù)系統(tǒng),打磨出一套可用的微服務(wù)架構(gòu)平臺和微服務(wù)構(gòu)建方法論,實(shí)現(xiàn)業(yè)務(wù)之間解耦和技術(shù)棧獨(dú)立,允許低成本試錯,使團(tuán)隊(duì)迭代更敏捷。

微服務(wù)構(gòu)建的五大核心要素

微服務(wù)構(gòu)建的初衷不外乎實(shí)現(xiàn)敏捷迭代、靈活擴(kuò)展、服務(wù)復(fù)用三大功能,騰訊云在構(gòu)建微服務(wù)的過程提煉出了以下五大方法論:

  • 在線協(xié)同: 對外的API文檔就是一份公共的說明,常有發(fā)布新的不兼容接口,因此,如何跨團(tuán)隊(duì)協(xié)同、通知至關(guān)重要,這方面需要通過swagger UI做在線的接口定義,以此公共契約;
  • 部署原則: 在真實(shí)環(huán)境里,Docker應(yīng)用還未完全普及,服務(wù)的部署耗時費(fèi)力?梢試L試提供批量的自動化工具,做微服務(wù)獨(dú)立打包,批量的部署,包括啟動、停止、升級、回滾、下線等操作 ;
  • 拆分原則: 如常見的線上房地產(chǎn)交易門戶商品中心,包含運(yùn)營相關(guān)的子系統(tǒng)如二手房推薦系統(tǒng)等,服務(wù)拆分得過細(xì)會帶來不必要的分布式事務(wù)、調(diào)用環(huán)節(jié)冗長等問題。各系統(tǒng)的拆分原則上可強(qiáng)調(diào)“抓大放小”;
  • 數(shù)據(jù)扁平化: 服務(wù)升級過程中,要注重?cái)?shù)據(jù)模型的統(tǒng)一。首先,各微服務(wù)的數(shù)據(jù)層要允許有完善的權(quán)限管理系統(tǒng),支持多種數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)清洗、數(shù)據(jù)同步等,便于業(yè)務(wù)高效地挖掘數(shù)據(jù)的價值 ;
  • 漸進(jìn)性架構(gòu) :大多企業(yè)和開發(fā)者很難從一開始高瞻遠(yuǎn)矚 ,規(guī)劃處3、5年不變的微服務(wù)架構(gòu),因此,需要有長期的演進(jìn)迭代以及小規(guī)模團(tuán)隊(duì)維護(hù),允許小團(tuán)隊(duì)技術(shù)棧獨(dú)立,來擁抱業(yè)務(wù)團(tuán)隊(duì)的快速試錯。

騰訊云微服務(wù)中間件TSF框架解析

TSF分布式框架,歷經(jīng)騰訊內(nèi)部最嚴(yán)苛、最復(fù)雜的生產(chǎn)級環(huán)境打磨,基于上述方法論,對其中核心性能的提煉,形成了一套具備無限擴(kuò)展、高性能、高可靠的一站式微服務(wù)架構(gòu)解決方案,可以為云計(jì)算開發(fā)者提供極具價值的經(jīng)驗(yàn)參考。

如下圖為騰訊云微服務(wù)中間件TSF一站式解決方案,最底層是云基礎(chǔ)資源平臺,包括云服務(wù)器、云數(shù)據(jù)庫、云存儲和專線加速幾大模塊,用作數(shù)據(jù)的存儲和調(diào)用;同時,作為圍繞微服務(wù)的PaaS平臺,TSF服務(wù)框架底層也融合了騰訊云內(nèi)部大量的中間件服務(wù),提供企業(yè)云化架構(gòu)所必需的消息隊(duì)列、Kafka、負(fù)載均衡、API 網(wǎng)關(guān)、全局配置服務(wù)等全套中間件。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

在此之上,TSF支持應(yīng)用的全生命周期管理功能,如對于虛擬機(jī)應(yīng)用,提供代碼包打包上傳,批量發(fā)布、變更,版本切換等產(chǎn)品生命周期功能;對于火熱的Docker應(yīng)用,提供基于行業(yè)主流編排框架Kubernetes的全流程自動化持續(xù)集成和持續(xù)交付。

對于已經(jīng)在使用 Dubbo 框架的用戶,可以通過修改 pom.xml 中的依賴,平滑地遷移到TSF。其中,Dubbo存量系統(tǒng)遷移方式包含兩種:

  1. 將業(yè)務(wù)發(fā)布包中的dubbo-registry-zookeeper.jar包替換為tsf-registry-consul.jar包;
  2. 修改dubbo配置項(xiàng):adress部分替換成騰訊云提供的url即可使用騰訊TSF服務(wù)。
<dubbo:registry id="×××1" address="×××://ip:port":/> <!--定義注冊中心-->

另外,在微服務(wù)運(yùn)行與治理框架方面,TSF為應(yīng)用提供了自動注冊、發(fā)現(xiàn)、治理,隔離,調(diào)用分析等一系列微服務(wù)治理能力,用以屏蔽微服務(wù)系統(tǒng)帶來的復(fù)雜度。整個TSF框架基于 Spring Cloud,支持分布式服務(wù)發(fā)布與注冊、服務(wù)調(diào)用、服務(wù)鑒權(quán)、服務(wù)降級、服務(wù)限流、配置管理、調(diào)用鏈跟蹤等功能。

TSF微服務(wù)框架技術(shù)選型策略

  • RPC高性能服務(wù)框架

TSF基于Spring Cloud生態(tài),提供標(biāo)準(zhǔn)restful服務(wù)框架,同時,鑒于分布式服務(wù)框架對性能和可靠性等能力具有極高的要求,騰訊云TSF在設(shè)計(jì)之初,就基于gRPC提供高性能RPC服務(wù)框架,系統(tǒng)地考慮了分布式服務(wù)發(fā)現(xiàn)、路由管理、安全、負(fù)載均衡等細(xì)節(jié)問題,滿足100萬+QPS的服務(wù)壓力。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

如上圖所示,TSF 服務(wù)注冊發(fā)現(xiàn)包括三個角色,服務(wù)提供者,服務(wù)調(diào)用者和服務(wù)注冊中心。服務(wù)提供者和服務(wù)調(diào)用者將地址信息注冊到服務(wù)注冊中心,并從服務(wù)注冊中心獲取所有注冊服務(wù)的實(shí)例列表。TSF 使用 Consul 作為服務(wù)注冊中心,提供金融級別的兩地三中心容災(zāi)部署能力。

  • 構(gòu)建可視化控制臺

應(yīng)用是TSF管理的基本單位,支持Java jar包,docker鏡像及其他語言應(yīng)用(通過service mesh)等,一個應(yīng)用下面通常包含了多臺機(jī)器,TSF提供了完整的可視化控臺,完善應(yīng)用的生命周期管理機(jī)制,對分布式系統(tǒng)應(yīng)用進(jìn)行發(fā)布和管理,減少部署時間,提升部署效率。

在 TSF 控制臺上,可以設(shè)置自定義 JVM 參數(shù)。TSF 將每次操作記錄下來,用戶可以在應(yīng)用的變更記錄頁面中查看和搜索變更記錄。

  1. 通過控制臺發(fā)布應(yīng)用,包括創(chuàng)建、部署、啟動應(yīng)用,也支持查看應(yīng)用的部署狀態(tài)。
  2. 通過控制臺管理應(yīng)用,包括回滾應(yīng)用、手動擴(kuò)容、縮容、刪除應(yīng)用。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

  • 全鏈路調(diào)用跟蹤

在監(jiān)控層面,TSF采取的策略是通過全鏈路調(diào)用跟蹤技術(shù)打造一站式監(jiān)控平臺,以可視化的形式,準(zhǔn)確掌握平臺各項(xiàng)指標(biāo)。具體實(shí)現(xiàn)如下圖,通過對日志埋點(diǎn)的收集和分析,得到一次請求在各個服務(wù)間的調(diào)用鏈關(guān)系,幫助梳理應(yīng)用的請求入口與服務(wù)的調(diào)用來源、依賴關(guān)系。當(dāng)遇到請求耗時較長的情況,通過調(diào)用鏈分析調(diào)用瓶頸,快速定位異常。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

監(jiān)控方面包括 IaaS 基礎(chǔ)監(jiān)控和應(yīng)用監(jiān)控。IaaS 基礎(chǔ)監(jiān)控的指標(biāo)有實(shí)例 CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤等,應(yīng)用監(jiān)控的指標(biāo)包括應(yīng)用的QPS, 請求時間和請求出錯率等。

分布式調(diào)用鏈分析包括調(diào)用鏈查詢和調(diào)用鏈詳情。調(diào)用鏈查詢用于查看系統(tǒng)中的調(diào)用鏈路狀態(tài),尤其是慢業(yè)務(wù)和出錯業(yè)務(wù),避免后端雪崩;調(diào)用鏈詳情是為了定位在分布式鏈路調(diào)用過程中每個環(huán)節(jié)的耗時和異常,用戶可以根據(jù)時間范圍和服務(wù)名等條件來查詢一組調(diào)用鏈,有助于提前發(fā)現(xiàn)架構(gòu)的瓶頸點(diǎn)。

  • 自研TDTS分布式事務(wù)服務(wù)

金融場景下,對數(shù)據(jù)一致性有著嚴(yán)苛要求,通常一筆交易將會跨多個業(yè)務(wù)集群。TSF采用自研分布式事務(wù)服務(wù)中間件TDTS,基于 TCC 模式,提供無業(yè)務(wù)侵入性、無改造數(shù)據(jù)庫改造成本的最終一致性中間件,保證每一筆交易可靠達(dá)成。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

TCC模式通過應(yīng)用層的兩階段提交,可以解決數(shù)據(jù)庫的兩階段并發(fā)性能差、數(shù)據(jù)庫對XA協(xié)議的支持可能不完善、以及部分情況下主業(yè)務(wù)系統(tǒng)智能間接操作數(shù)據(jù)庫等問題。其實(shí)現(xiàn)原理是先執(zhí)行 try, 再執(zhí)行 confirm;若 try 失敗,則執(zhí)行cancel。具體事務(wù)執(zhí)行流程如下:

  1. 依次調(diào)用從業(yè)務(wù)系統(tǒng)的 Try 接口;
  2. 若 Try 階段成功,則依次調(diào)用從業(yè)務(wù)系統(tǒng)的 Confirm 接口;
  3. 若在 Try 階段出現(xiàn)失敗,則調(diào)用從業(yè)務(wù)系統(tǒng)的 Cancel 接口,對 Try 接口的操作進(jìn)行恢復(fù);
  4. 若在 Confirm 階段出現(xiàn)失敗,則重試,設(shè)置重試次數(shù)。若重試仍然失敗,則需要事后處理;
  5. 若調(diào)用 Cancel 接口失敗,也進(jìn)行重試操作;

這里,值得一提的是,TSF 可以與騰訊云多款成熟中間件產(chǎn)品打通,包括騰訊云 API Gateway、消息隊(duì)列 CMQ 、CKafka 等。騰訊云微服務(wù) API Gateway 通過建立路徑到微服務(wù)ID的映射方式,用以提供負(fù)載均衡、熔斷等能力。

TSF在傳統(tǒng)企業(yè)的微服務(wù)改造實(shí)踐

騰訊云的TSF分布式微服務(wù)框架雛形可追溯至2013年,其初期以Devops服務(wù)系統(tǒng)的形式,支撐了包括財(cái)付通、騰訊游戲、手機(jī)QQ等內(nèi)部核心業(yè)務(wù)的架構(gòu)升級。2017年,騰訊云整合內(nèi)部微服務(wù)體系,提煉出了具備金融級容災(zāi)能力,高性能、高可靠的微服務(wù)解決方案,幫助傳統(tǒng)企業(yè)快速解決在微服務(wù)改造過程中遇到的問題。此處以某房地產(chǎn)為例,簡單講述TSF在傳統(tǒng)企業(yè)的微服務(wù)改造實(shí)踐。

傳統(tǒng)房地產(chǎn)企業(yè)面臨的問題

傳統(tǒng)房地產(chǎn)企業(yè)在互聯(lián)網(wǎng)轉(zhuǎn)型升級過程中,IT系統(tǒng)架構(gòu)極為復(fù)雜。因?yàn)閱误wIT架構(gòu)的固有屬性,其IT子系統(tǒng)各自為戰(zhàn),標(biāo)準(zhǔn)不一,無法相互通信,如會員信息、訂單信息、消費(fèi)者行為記錄等多套系統(tǒng)鏈接分散,一旦涉及到業(yè)務(wù)變更情況,經(jīng)常數(shù)百人加班參與,對后續(xù)的系統(tǒng)迭代帶來了巨大挑戰(zhàn)。

國家新型化城鎮(zhèn)化規(guī)劃出臺后,“城市配套服務(wù)商”的戰(zhàn)略一時引發(fā)熱潮,圍繞系列新業(yè)務(wù),包括:裝修、社區(qū)教育、酒店、商辦(寫字樓)、長租公寓、養(yǎng)老地產(chǎn)、物流地產(chǎn)等系統(tǒng)協(xié)同發(fā)展,此時,傳統(tǒng)的IT架構(gòu)顯然已經(jīng)無法滿足新的業(yè)務(wù)發(fā)展需求。

騰訊云TSF微服務(wù)改造方案

騰訊云在原有的IT系統(tǒng)上,梳理出關(guān)鍵模塊和關(guān)鍵資源,同時,在云中間件的平臺上,搭建了系列抽象出來的中間件系統(tǒng),包括負(fù)載均衡、API網(wǎng)關(guān)服務(wù)、分布式配置、分布式事務(wù)、消息列隊(duì)服務(wù)、分布式數(shù)據(jù)庫以及騰訊云的IaaS能力,將獨(dú)立的IT系統(tǒng)通過微服務(wù)的方式進(jìn)行管理,對于關(guān)鍵資源通過合并調(diào)用減少調(diào)用冊數(shù),對于非關(guān)鍵資源同步異化處理,減少實(shí)施強(qiáng)依賴。

日調(diào)度5萬億次,騰訊云微服務(wù)架構(gòu)體系TSF深度解讀

通過微服務(wù)改造,將房地產(chǎn)的業(yè)務(wù)拆分成一手房銷售系統(tǒng)、土地拍賣系統(tǒng)、營銷包裝系統(tǒng)與認(rèn)籌系統(tǒng),每個系統(tǒng)底下都有自己獨(dú)立的運(yùn)行進(jìn)程,各系統(tǒng)之間通過輕量級的方式進(jìn)行通信,每個系統(tǒng)獨(dú)立而又相互連接。

此時,可以在公有云或者其他小程序上,根據(jù)自身業(yè)務(wù)需求,開發(fā)出新的應(yīng)用或者系統(tǒng)如管家微信小程序、在線家政預(yù)約服務(wù)等,因?yàn)槊總系統(tǒng)的運(yùn)行相互獨(dú)立,新的應(yīng)用即便呈現(xiàn)爆發(fā)式增長,也不會影響其他模塊的運(yùn)行。

據(jù)悉,通過搭建分布式微服務(wù)中間件TSF,該房地產(chǎn)的IT系統(tǒng)在80天內(nèi)完成微服務(wù)架構(gòu)改造上線,版本迭代平均周期從一個月變?yōu)閮芍? 當(dāng)有新應(yīng)用時,可以快速上線互聯(lián)網(wǎng)應(yīng)用。目前,系統(tǒng)每天能夠穩(wěn)定處理超過5000萬次的系統(tǒng)查詢,超過1000萬次的訂單落地。

當(dāng)然,這個項(xiàng)目的整體改造過程并非一蹴而就,前期主要是將一些核心系統(tǒng)遷移,當(dāng)完成主體架構(gòu)搭建后,后期再根據(jù)需求進(jìn)行適當(dāng)?shù)牡透隆?/p>

因此,對于傳統(tǒng)企業(yè)的微服務(wù)架構(gòu)引入策略上,建議在開始時可以考慮引入部分合適的微服務(wù)架構(gòu)原則,對已有系統(tǒng)進(jìn)行改造或新建微服務(wù)應(yīng)用,然后逐步探索及積累微服務(wù)架構(gòu)經(jīng)驗(yàn),而非全盤實(shí)施微服務(wù)架構(gòu)。

 

來自:http://www.infoq.com/cn/news/2018/02/deep-interpretation-TSF-cloud-mi

 

標(biāo)簽: 安全 代碼 服務(wù)器 服務(wù)商 公有云 互聯(lián)網(wǎng) 互聯(lián)網(wǎng)企業(yè) 互聯(lián)網(wǎng)業(yè)務(wù) 金融 開發(fā)者 權(quán)限 權(quán)限管理 數(shù)據(jù)庫 搜索 通信 網(wǎng)絡(luò) 云服務(wù) 云服務(wù)器 云計(jì)算 云計(jì)算開發(fā)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:15000個Python開源項(xiàng)目中精選Top30,Github平均star為3707

下一篇:6行代碼解決golang TCP粘包