(1)Lars項目概述(Reactor部分)【Lars-基于C++負(fù)載均衡遠(yuǎn)程服務(wù)器調(diào)度系統(tǒng)教程】

看云文檔地址:
https://www.kancloud.cn/aceld/lars


【Lars教程目錄】

Lars源代碼
https://github.com/aceld/Lars


【Lars系統(tǒng)概述】
第1章-概述
第2章-項目目錄構(gòu)建


【Lars系統(tǒng)之Reactor模型服務(wù)器框架模塊】
第1章-項目結(jié)構(gòu)與V0.1雛形
第2章-內(nèi)存管理與Buffer封裝
第3章-事件觸發(fā)EventLoop
第4章-鏈接與消息封裝
第5章-Client客戶端模型
第6章-連接管理及限制
第7章-消息業(yè)務(wù)路由分發(fā)機制
第8章-鏈接創(chuàng)建/銷毀Hook機制
第9章-消息任務(wù)隊列與線程池
第10章-配置文件讀寫功能
第11章-udp服務(wù)與客戶端
第12章-數(shù)據(jù)傳輸協(xié)議protocol buffer
第13章-QPS性能測試
第14章-異步消息任務(wù)機制
第15章-鏈接屬性設(shè)置功能


【Lars系統(tǒng)之DNSService模塊】
第1章-Lars-dns簡介
第2章-數(shù)據(jù)庫創(chuàng)建
第3章-項目目錄結(jié)構(gòu)及環(huán)境構(gòu)建
第4章-Route結(jié)構(gòu)的定義
第5章-獲取Route信息
第6章-Route訂閱模式
第7章-Backend Thread實時監(jiān)控


【Lars系統(tǒng)之Report Service模塊】
第1章-項目概述-數(shù)據(jù)表及proto3協(xié)議定義
第2章-獲取report上報數(shù)據(jù)
第3章-存儲線程池及消息隊列


【Lars系統(tǒng)之LoadBalance Agent模塊】
第1章-項目概述及構(gòu)建
第2章-主模塊業(yè)務(wù)結(jié)構(gòu)搭建
第3章-Report與Dns Client設(shè)計與實現(xiàn)
第4章-負(fù)載均衡模塊基礎(chǔ)設(shè)計
第5章-負(fù)載均衡獲取Host主機信息API
第6章-負(fù)載均衡上報Host主機信息API
第7章-過期窗口清理與過載超時(V0.5)
第8章-定期拉取最新路由信息(V0.6)
第9章-負(fù)載均衡獲取Route信息API(0.7)
第10章-API初始化接口(V0.8)
第11章-Lars Agent性能測試工具
第12章- Lars啟動工具腳本


1 Lars系統(tǒng)開發(fā)

(Load balance And Remote service schedule System)

系統(tǒng)開發(fā)環(huán)境:

Linux : Ubuntu18.04

protobuf : libprotoc 3.6.1版本及以上

mysql: mysql Ver 14.14 Distrib 5.7.27 版本及以上

g++: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 版本及以上

一、概述:

Lars是一個簡單、易用粤咪、高性能的服務(wù)間遠(yuǎn)程調(diào)用管理觉渴、調(diào)度逃默、負(fù)載均衡系統(tǒng)殴泰。

1) 優(yōu)勢

  1. 性能強悍

    集群支持千萬并發(fā)鏈接,滿足用戶的海量業(yè)務(wù)訪問需求鞭莽。

  2. 高可用

    采用集群化部署瓮孙,支持多可用區(qū)的容災(zāi)唐断,無縫實時切換。

  3. 靈活擴展

    自動分發(fā)杭抠,與彈性伸縮無縫集成脸甘,靈活擴展用戶用于的對外服務(wù)能力。

  4. 簡單易用

    快速部署偏灿、實時生效丹诀,支持多種協(xié)議,多種調(diào)度算法翁垂,用戶可以高效的管理和調(diào)整服務(wù)分發(fā)策略等铆遭。

2) 應(yīng)用場景

(1)、大型門戶網(wǎng)站

? 針對大型門戶網(wǎng)站訪問量高的特點沮峡,通過彈性負(fù)載均衡將用戶的訪問流量均勻的分發(fā)到多個后端云服務(wù)器上疚脐,確保業(yè)務(wù)快速平穩(wěn)的運行

優(yōu)勢

  • 靈活擴展

    可根據(jù)實際的用戶訪問量亿柑,自動擴展負(fù)載分發(fā)能力

  • 高性能

    集群支持高并發(fā)連接邢疙,滿足海量訪問量訴求

Lars-場景1.png

(2)、跨可用區(qū)同城容災(zāi)

? 彈性負(fù)載均衡可將流量跨可用區(qū)進(jìn)行分發(fā)望薄,建立實時的同城容災(zāi)機制疟游,滿足銀行貿(mào)易等企業(yè)對系統(tǒng)的高可用性要求。

優(yōu)勢

  • 靈活擴展

    可根據(jù)實際的用戶訪問量痕支,自動擴展負(fù)載分發(fā)能力

  • 同城容災(zāi)

    支持跨可用區(qū)的雙活容災(zāi)颁虐,實現(xiàn)無縫實時切換

Lars-場景2.png

(3)、電商搶購

? 電商業(yè)務(wù)呈現(xiàn)出較強的潮汐效應(yīng)卧须。Lars通過和彈性伸縮等服務(wù)的無縫集成另绩,自動創(chuàng)建后端云服務(wù)器,將流量自動分發(fā)到新的云服務(wù)器花嘶,緩解了促銷高峰時期的系統(tǒng)壓力笋籽。

優(yōu)勢

  • 彈性伸縮

    根據(jù)業(yè)務(wù)流量實時創(chuàng)建或移除云服務(wù)器

  • 高可用

    通過健康檢查快速屏蔽異常云服務(wù)器,確保業(yè)務(wù)高可用

  • 高性能

    集群支持高并發(fā)連接椭员,滿足海量訪問量訴求

Lars-場景3.png

3) Lars系統(tǒng)總體架構(gòu)

? 對于一個部門的后臺车海,為增強靈活性,一個服務(wù)可以被抽象為命令字:modid+cmdid的組合隘击,稱為一個模塊侍芝,而這個服務(wù)往往有多個服務(wù)節(jié)點研铆,其所有服務(wù)節(jié)點的地址集合被稱為這個模塊下的路由,節(jié)點地址簡稱為節(jié)點

  • modid:標(biāo)識業(yè)務(wù)的大類州叠,如:“直播列表相關(guān)”

  • cmdid:標(biāo)識具體服務(wù)內(nèi)容棵红,如:“批量獲取直播列表”

    ? 業(yè)務(wù)代碼利用modid,cmdid,就可以調(diào)用對應(yīng)的遠(yuǎn)程服務(wù)一個Lars系統(tǒng)包含一個DNSService咧栗,一個Report Service窄赋,以及部署于每個服務(wù)器的LoadBalance Agent,業(yè)務(wù)代碼通過API與ELB系統(tǒng)進(jìn)行交互

API :根據(jù)自身需要的modid,cmdid楼熄,向ELB系統(tǒng)獲取節(jié)點忆绰、匯報節(jié)點調(diào)用結(jié)果;提供C++可岂、Java错敢、Python接口

LoadBalance Agent:運行于每個服務(wù)器上,負(fù)責(zé)為此服務(wù)器上的業(yè)務(wù)提供節(jié)點獲取缕粹、節(jié)點狀態(tài)匯報稚茅、路由管理、負(fù)載調(diào)度等核心功能

DNSService : 運行于一臺服務(wù)器上(也可以用LVS部署多實例防單點)平斩,負(fù)責(zé)modid,cmdid到節(jié)點路由的轉(zhuǎn)換

Report Service : 運行于DNSService同機服務(wù)器上亚享,負(fù)責(zé)收集各modid,cmdid下各節(jié)點調(diào)用狀況,可用于觀察绘面、報警

modid,cmdid數(shù)據(jù)由Mysql管理欺税,具體SQL腳本在common/sql路徑下
至于modid,cmdid的注冊、刪除可以利用Web端操作MySQL揭璃。

1-Lars-總體架構(gòu)設(shè)計.png

如圖晚凿,每個服務(wù)器(虛線)部署了一臺LoadBalance Agent,以及多個業(yè)務(wù)服務(wù)

  1. 開發(fā)者在Web端注冊瘦馍、刪除歼秽、修改modid,cmdid的路由信息,信息被寫入到MySQL數(shù)據(jù)庫情组;
  2. 服務(wù)器上每個業(yè)務(wù)biz都把持著自己需要通信的遠(yuǎn)程服務(wù)標(biāo)識modid+cmdid燥筷,每個biz都向本機LoadBalance Agent獲取遠(yuǎn)程節(jié)點,進(jìn)而可以和遠(yuǎn)程目標(biāo)服務(wù)通信院崇,此外業(yè)務(wù)模塊會匯報本次的節(jié)點調(diào)用結(jié)果給LoadBalance Agent肆氓;
  3. LoadBalance Agent負(fù)責(zé)路由管理、負(fù)載均衡等核心任務(wù)亚脆,并周期性向DNSService獲取最新的路由信息做院,周期性把各modid,cmdid的各節(jié)點一段時間內(nèi)的調(diào)用結(jié)果傳給Report Service
  4. DNSService監(jiān)控MySQL,周期性將最新路由信息加載出來;
  5. Report Service將各modid,cmdid的各節(jié)點一段時間內(nèi)的調(diào)用結(jié)果寫回到MySQL键耕,方便Web端查看寺滚、報警。

關(guān)于作者:

作者:Aceld(劉丹冰)

mail: danbing.at@gmail.com
github: https://github.com/aceld
原創(chuàng)書籍gitbook: http://legacy.gitbook.com/@aceld

原創(chuàng)聲明:未經(jīng)作者允許請勿轉(zhuǎn)載, 如果轉(zhuǎn)載請注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屈雄,一起剝皮案震驚了整個濱河市村视,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酒奶,老刑警劉巖蚁孔,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異惋嚎,居然都是意外死亡杠氢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進(jìn)店門另伍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鼻百,“玉大人,你說我怎么就攤上這事摆尝∥峦В” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵堕汞,是天一觀的道長勺爱。 經(jīng)常有香客問我,道長讯检,這世上最難降的妖魔是什么琐鲁? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮视哑,結(jié)果婚禮上绣否,老公的妹妹穿的比我還像新娘誊涯。我一直安慰自己挡毅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布暴构。 她就那樣靜靜地躺著跪呈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪取逾。 梳的紋絲不亂的頭發(fā)上耗绿,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天,我揣著相機與錄音砾隅,去河邊找鬼误阻。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的究反。 我是一名探鬼主播寻定,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼精耐!你這毒婦竟也來了狼速?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤卦停,失蹤者是張志新(化名)和其女友劉穎向胡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惊完,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡僵芹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了小槐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淮捆。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖本股,靈堂內(nèi)的尸體忽然破棺而出攀痊,到底是詐尸還是另有隱情,我是刑警寧澤拄显,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布苟径,位于F島的核電站,受9級特大地震影響躬审,放射性物質(zhì)發(fā)生泄漏棘街。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一承边、第九天 我趴在偏房一處隱蔽的房頂上張望遭殉。 院中可真熱鬧,春花似錦博助、人聲如沸险污。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛔糯。三九已至,卻和暖如春窖式,著一層夾襖步出監(jiān)牢的瞬間蚁飒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工萝喘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淮逻,地道東北人琼懊。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像爬早,于是被迫代替她去往敵國和親肩碟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,576評論 2 349

推薦閱讀更多精彩內(nèi)容