国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Raft 算法原理及其在 CMQ 中的應用(下)

開發 開發工具 算法
早期我們在rabbitmq的基礎上搭建了一套可擴展消息中間件CRMQ1.0,由于rabbitmq的GM同步算法在性能等方面存在瓶頸,所以自研了基于raft算法的內部版本CRMQ2.0和騰訊云CMQ,在保證強一致高可靠的前提下,性能和可用性都有顯著提升。

三 Raft在CMQ中的應用

早期我們在rabbitmq的基礎上搭建了一套可擴展消息中間件CRMQ1.0,由于rabbitmq的GM同步算法在性能等方面存在瓶頸,所以自研了基于raft算法的內部版本CRMQ2.0和騰訊云CMQ,在保證強一致高可靠的前提下,性能和可用性都有顯著提升。實現上采用了生產Confirm + 消費Ack機制保證消息不丟失,Confirm和Ack機制均通過raft來保證。生產的消息通過Raft轉為Entry同步到大多數節點并提交,完成后各節點狀態機應用該Entry,將消息內容寫入磁盤,之后由Leader節點回復客戶端Confirm,表示消息生產成功。消費時客戶端從Leader節點拉取消息,消費完成后通過Ack命令通知服務端消息已消費可刪除,Ack請求經Raft同步后,各節點應用該請求,之后消息被刪除不會再投遞。下面介紹詳細過程:

生產流程:

1)生產者將生產消息的請求發往Leader的Raft模塊。

2)Raft模塊完成Entry的創建和同步。

3)大多數節點上持久化并返回成功后Entry標記為Committed。

4)所有節點的State Machine應用該日志,取出實際的生產請求,將消息內容寫入磁盤,更新ApplyIndex。該步驟不需要刷盤。

5)Leader回復客戶端Confirm,通知生產成功。

6)如果此后機器重啟,通過raft日志恢復生產消息,保證了已Confirm的消息不丟失。

消費流程:

1)消費者從Leader節點拉取消息。

2)Leader收到后從磁盤加載未刪除的消息投遞給客戶端。

3)客戶端處理完成后Ack消息,通知服務器刪除消息。

4)Ack請求經Raft同步后標記為Committed。

5)各節點狀態機應用該日志,將消息對應的bit置位,將其設置為已刪除并更新ApplyIndex。

6)通知客戶端刪除成功。

7)如果機器重啟,通過Raft日志恢復Ack請求,保證了已刪除的消息不會再投遞。

快照管理:

快照管理與業務緊密相關,不同系統快照制作的成本差異很大,CMQ中快照的內容十分輕量,一次快照的耗時在毫秒級,平均5min創建一次,各節點獨立完成。實現上內存中維護了一份動態的快照,制作快照時首先拷貝出動態快照的副本,之后處理流繼續更新動態快照,用拷貝出的副本創建快照文件,不影響實際的處理流。快照具體內容包括:

1)term:快照對應Entry的term (參照算法)

2)index:快照對應Entry的 index (參照算法)

3)node_info:Entry時的集群配置信息。

4)topic info:每個隊列一項。CMQ中同一隊列生產的消息順序寫入,分片存儲,因此只需記錄***一個分片的狀態(分片文件名,文件偏移量)。

5)queue info:每個隊列一項。CMQ中采用bitmap記錄消息的刪除情況,在內存中維護,在制作快照時dump到快照文件。

可靠性:業界統一的衡量標準為RPO(Recovery Point Objective),反映故障時數據恢復完整性的指標。由于只有提交的日志才會被應用到狀態機,且raft日志在寫入時會強制刷盤,所以故障重啟后通過快照+raft日志即可恢復,不會丟失數據,RPO=0。不過,如2.7節所述,Leader故障時可能會產生重復數據,需要通過冪等性保證或去重機制來解決該問題。

可用性:業界統一的衡量標準為RTO(Recovery Time Objective),反映故障時業務恢復及時性的指標。follower故障對系統沒有影響(RTO=0),leader故障時其他節點通過自發選出新leader,而且CMQ中前端具備自動重連功能,當連接斷開后會自動尋找新leader,系統不可用時間大大降低。目前CMQ中配置的選舉超時時間為2s~4s,在不考慮選舉沖突的前提下,RTO上限為4s。

在CMQ中,Leader通過與Follower的心跳判斷自己是否已網絡分區,當檢測到分區時(大多數節點上次心跳回復時間距現在超過2s),主動斷開前端連接,前端發現后會自動尋找新Leader。這段時間內客戶端請求會超時,在連上新Leader后,客戶端重試之前超時的任務,后續請求恢復正常。

四 Raft算法性能優化

Raft算法的性能瓶頸主要有兩方面:

1) 每次日志寫入后都需要刷盤才能返回成功,而刷盤是一個比較耗時的操作。

2) 由于算法限制,所有的請求都由Leader處理,不能做到所有節點皆可提供服務。

針對以上兩個問題,我們做了以下優化:

1)Batch Processing:在請求量較大時,并不是每一條日志寫入都刷盤,還是累積一定量的日志后集中刷盤,從而減少刷盤次數。對應的,在同步到Follower時也采用批量同步的方式,Follower接收后將日志批量寫盤。

2)Multi-Raft: 進程中同時運行多個raft實例,機器之間組建多raft 組,客戶端請求路由到不同的group上,從而實現多主讀寫,提高并發性能。通過將leader分布在不同機器上,提高了系統的整體利用率。

3)Async-rpc: 在日志同步過程中采用同步rpc方式,在一端處理時另一端只能等待,性能較差。我們采用異步的方式使得leader端發送和Follower端處理并發進行。發送過程中leader端維持一個發送窗口,當待確認的rpc數達到上限停止發送,窗口值上限:


在與同屬于高可靠(多副本同步刷盤)的Rabbitmq性能對比中,相同壓測場景下CMQ速度可以達到RabbitMQ的四倍左右。

以下為TS60機器1KB消息大小時性能數據:

測試中CMQ采用單Raft組方式以保證測試公平性。監控顯示CPU、內存和網卡均未達到瓶頸,系統瓶頸在磁盤IO,iostat顯示w_await遠大于svctm。主要原因在于刷盤耗時,造成寫操作排隊等待。

實際生產環境CMQ中我們將raft組和磁盤進行綁定,實現raft組之間磁盤的隔離,一方面保證了磁盤的順序讀寫,另一方面充分利用機器的cpu 、內存、網卡等資源。

五 通用Raft庫

CMQ中完整實現了Raft算法并解決了很多細節難點。考慮到分布式系統設計的復雜性,如果開發者只專注于業務相關部分,將可以顯著降低開發難度,提高系統的質量,所以我們將CMQ中的raft部分以庫的方式獨立出來,使用者用它即可搭建一套強一致高可用分布式系統。目前該庫已經完成基線版本開發并在部門落地使用,驗證完成后會陸續開放給更多業務使用。

六 總結

消息中間件通常分為高可靠版本和高性能版本兩種。CMQ是一款金融級的高可靠分布式消息中間件,通過raft保證了消息的可靠不丟失。同時在性能和可用性方面相比競品都有顯著提高。此外,我們自研的高性能版本的消息中間件ckafka也已在騰訊云上線,***兼容kafka0.09~0.10版本客戶端,關于CKafka的具體技術介紹請關注后續技術文章。

Raft算法強調了Leader的地位,選舉和日志同步都是圍繞Leader展開。由Leader負責處理所有請求保證了系統的強一致性;Leader選舉和日志同步算法保證了數據的可靠不丟失;此外上述步驟只需要大多數正常互聯即可,從而極大提高了系統的可用性,少量機器故障不受影響。不過,所有請求由Leader處理并沒有充分利用從節點的資源,目前google的Spanner已支持從從節點讀取,后續我們也會在這方面作更進一步的研究。Raft算法易于理解和工程化,相信未來會應用在越來越多的分布式系統中。

原文鏈接:https://cloud.tencent.com/community/article/937437

【本文是51CTO專欄作者“騰訊云技術社區”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-09-01 15:21:18

Raft算法CMQ應用

2022-03-24 10:23:51

時間輪方法任務

2017-01-17 09:38:52

ZooKeeperHadoopHBase

2017-05-24 09:43:42

2023-11-02 09:33:31

Go語言Raft算法

2014-09-30 09:20:13

SDN openflow NFV

2020-05-13 15:10:04

矩陣乘法深度學習人工智能-

2023-03-02 08:26:36

RedisAVL紅黑樹

2022-09-29 08:00:00

人工智能運輸公平性

2009-12-30 10:23:30

VLAN技術

2018-06-08 08:46:14

RaftPaxos系統

2018-03-13 08:20:48

區塊鏈數據安全

2019-06-06 08:52:00

2017-11-30 12:53:21

深度學習原理視覺

2021-06-30 17:55:34

Redis應用跳表

2024-08-15 06:51:31

2012-12-14 08:46:14

微博PageRank算法

2021-07-21 11:25:17

機器學習?AI人工智能

2023-03-10 07:30:24

2022-08-11 13:37:41

多模態算法多模態網絡
點贊
收藏

51CTO技術棧公眾號

日韩av综合网站| 国产成人久久久| 91精品国产自产在线丝袜啪| 视频一区视频二区视频三区视频四区国产| 777久久久精品| 免费精品视频| 色狠狠一区二区三区| 992tv在线观看| 久久久精品有限公司| 原创国产精品91| 亚洲乱码国产乱码精品精的特点| 丁香花高清在线观看完整版| 亚洲国产欧美不卡在线观看 | av成人在线观看| 久久66热这里只有精品| 精品国产乱码久久久久久免费| 免费观看在线综合| 都市激情亚洲一区| 国产成人黄色片| 久久免费视频在线观看| 国产在线精品不卡| 99久久婷婷国产综合精品首页| 亚洲欧洲一区二区在线观看| 欧美精品一区二区三区蜜桃视频| 天堂久久一区二区三区| 国产在线精彩视频| 国产女主播av| 成人444kkkk在线观看| 91免费国产视频网站| av综合网站| 韩日在线视频| 黄色a级在线观看| 久久99精品久久久久久琪琪| 亚洲成人精品一区| 欧美一级网站| 国产成人精品一区二区三区免费 | 欧美韩国一区二区| 国产 国语对白 露脸| 亚洲精品视频网上网址在线观看 | 国产成人福利片| 三上悠亚激情av一区二区三区| 116美女写真午夜一级久久| 成人短视频在线看| 国产亚洲一区在线播放| 久久久久久久久91| 亚洲小视频在线观看| 欧美一区国产二区| 亚洲线精品一区二区三区 | 欧美成人tv| 日韩精品社区| 日韩精品久久久久久久软件91| 久草在线资源站资源站| 免费在线一级视频| 欧美变态视频| 日本成人黄色| 在线观看网站黄不卡| 日本视频一区二区三区| 92久久精品| 日韩欧美亚洲成人| 国产一区导航| 日本国产精品| 在线观看的av| 51xx午夜影福利| 国产z一区二区三区| 日韩一区二区三区视频| 国产盗摄精品一区二区三区在线 | 亚洲性生活视频| 91免费国产在线观看| 视频在线不卡免费观看| 欧美理论电影| 国产黄色高清在线| 国产精品视频在线免费观看| 最近免费中文字幕视频2019| 大桥未久一区二区三区| 无吗不卡中文字幕| 亚洲网色网站| 有色激情视频免费在线| 91亚洲精品一区二区| 欧美一级片久久久久久久| 欧美黑人3p| 亚洲国产一区二区三区在线| 91久久精品网| 久久亚洲视频| 操人在线观看| 国产一区私人高清影院| 日韩欧美国产骚| 99精品黄色片免费大全| 亚洲精品v亚洲精品v日韩精品| 91精品91久久久中77777老牛| 91精品在线免费观看| 久久99精品国产麻豆婷婷洗澡| av中文字幕在线观看第一页 | 国产综合久久久久久| 亚洲欧美精品午睡沙发| 国产精品1区二区.| 91嫩草国产线观看亚洲一区二区| 国产女女做受ⅹxx高潮| 在线观看视频亚洲| 欧美色图免费看| 一区二区三区在线看| 亚洲精品网址| 福利电影一区| 日韩二区在线观看| 亚洲经典三级| 中文字幕人成乱码在线观看| 亚洲国产精品毛片av不卡在线| 91禁国产网站| 亚洲风情在线资源| 二级片在线观看| 成人福利免费观看| 日韩一区二区视频在线观看| 99精品欧美一区二区三区小说| 涩涩屋成人免费视频软件| 欧美美女色图| 毛片网站在线观看| 尤物国产在线观看| www.天天射.com| 色婷婷精品国产一区二区三区| 清纯唯美亚洲激情| 日韩中文字幕视频| 同产精品九九九| 国产精品国产精品国产专区不蜜| 国产精品亚洲一区二区三区妖精| 亚洲精品成a人ⅴ香蕉片| 在线免费中文字幕| 在线无限看免费粉色视频| 欧美一级电影久久| 欧美成aaa人片免费看| 国产精品久久久久一区二区三区 | 国内精品视频久久| 亚洲最新av在线| 日韩亚洲精品视频| 欧美日本高清视频在线观看| 欧美日韩亚洲综合一区二区三区 | 视频一区视频二区视频三区高| 国产丝袜一区二区三区| 亚洲男人都懂的| 欧美国产激情一区二区三区蜜月| 97久久人人超碰| 久久亚洲风情| 国产精品videosex极品| 中文字幕日韩在线| 先锋欧美三级| 成人自拍在线| 香蕉久久网站| 成人免费在线观看网站| 水蜜桃亚洲一二三四在线| 乱熟女高潮一区二区在线| 久久偷窥视频| 亚洲国产另类久久久精品极度| 99久久精品无码一区二区毛片 | 亚洲一区二区三区四区五区xx| 精品91免费| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲jizzjizz日本少妇| 91久热免费在线视频| 波多野结衣精品久久| 福利视频久久| 日本婷婷久久久久久久久一区二区| 97在线免费视频| 成人黄页毛片网站| 美女av在线免费看| 成人mm视频在线观看| 日韩精品一级| 日韩二区在线观看| 亚洲精品亚洲人成人网| 免费网站免费进入在线| 黄色av网站在线播放| 欧美新色视频| 伊人中文在线| 亚洲a成v人在线观看| a级黄色一级片| 二区三区在线观看| www.国产精品一区| 成人午夜视频网站| 亚洲国产人成综合网站| 欧美蜜桃一区二区三区| 日韩av中文在线| 亚洲精品自拍偷拍| 久久国产精品久久久久久| 91沈先生播放一区二区| 亚洲精品一区二区三区樱花| 精东传媒在线观看| 成人在线观看免费播放| 欧美国产一区二区三区激情无套| 这里只有精品在线| 男人的天堂亚洲一区| 国产很黄免费观看久久| 亚洲国产va精品久久久不卡综合| 日韩成人在线电影网| 亚洲xxxxx电影| 国产在线观看网站| 欧美日韩国产观看视频| 亚洲播播91| 国产在线日韩| 韩曰欧美视频免费观看| 韩国欧美亚洲国产| 人人澡人人爽| 欧美a大片欧美片| 亚洲国产精品综合小说图片区|