成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從源碼上看,RocketMQ 5.0 跟 RocketMQ 4.x相比增加了哪幾個(gè)模塊

開發(fā) 架構(gòu)
本文從源碼角度講述了 RocketMQ 5.0 主要的變化。為了更好地?fù)肀г圃?RocketMQ 5.0 架構(gòu)上發(fā)生了比較大的變化,實(shí)現(xiàn)計(jì)算存儲(chǔ)相分離,并且引入 bazel 進(jìn)行構(gòu)建。

大家好,我是君哥。

今天來介紹一下 RocketMQ 5.0 源碼上的變化。

RocketMQ 5.0 是一個(gè)里程碑式的版本,經(jīng)歷了近 5 年的打磨,代碼變更達(dá)到 60%。

首先看一下源碼中模塊的變化,如下圖:

圖片

從圖中可以看到,RocketMQ 5.0 主要增加了 4 個(gè)模塊兒,下面介紹一下這 4 個(gè)模塊兒。

1、bazel

bazel 是 Google 開源的構(gòu)建工具,目前廣泛用于云計(jì)算領(lǐng)域的開源軟件(如 Kubernetes)構(gòu)建,它有如下特點(diǎn):1.支持增量式編譯、支持緩存、支持分布式擴(kuò)展;2.bazel 可以清晰地以依賴關(guān)系圖的方式展現(xiàn)出當(dāng)前的依賴關(guān)系,比 makefile 更加方便;3.bazel支持多語言構(gòu)建。

RocketMQ 5.0 引入了 bazel 構(gòu)建。

2、container

在 RocketMQ 4.x 時(shí)代,如果采用 Master-Slave 架構(gòu),Broke 節(jié)點(diǎn)一旦掛了,是不能自動(dòng)切換的。RocketMQ 5.0 對(duì)這個(gè)架構(gòu)進(jìn)行了改進(jìn),引入了 BrokerContainer 的概念,一個(gè) BrokerContainer 中可以部署多個(gè) Broker,這些 Broker 擁有獨(dú)立的端口,功能完全獨(dú)立,并且可以共享同一個(gè)節(jié)點(diǎn)的資源。如下圖:

圖片

有創(chuàng)造性的是,在一個(gè) BrokerContainer 中可以交叉部署 Master 和 Slave 節(jié)點(diǎn),如下圖兩節(jié)點(diǎn)對(duì)等部署:

圖片

這樣做有即使 Node1 節(jié)點(diǎn)掛了,Node2 節(jié)點(diǎn)中的 Broker1 可以提供讀功能,并不會(huì)丟消息,而 Broker2 則可以繼續(xù)提供讀寫功能。

3、controller

RocketMQ 5.0 引入了 DLedger Controller 架構(gòu),解決傳統(tǒng) DLedger 架構(gòu)的不足。

(1)傳統(tǒng) DLedger

在 RocketMQ 4.x 中,如果采用 DLedger 架構(gòu)部署,Broker 掛掉后,是可以自動(dòng)實(shí)現(xiàn)主從切換的。但這樣需要用 Raft Commitlog 來取代 RocketMQ 自身的 Commitlog,因?yàn)橹挥羞@樣 Commitlog 才會(huì)具有選舉的能力。Broker 主節(jié)點(diǎn)掛掉后,從節(jié)點(diǎn)依照 DLedger 協(xié)議進(jìn)行內(nèi)部協(xié)商,選舉出新的主節(jié)點(diǎn),自動(dòng)完成主備切換。

不過這樣存在幾個(gè)問題:

1.消息日志副本數(shù)必須是 3 個(gè)以上,這個(gè)是 Raft 協(xié)議自動(dòng)選主的要求,造成資源浪費(fèi);

2.Raft 選主過程中必須有多數(shù)節(jié)點(diǎn)同意才能選主成功,副本數(shù)越多時(shí)間開銷會(huì)越大,這會(huì)加大 ACK 延時(shí);

3.CommitLog 主從同步需要使用 DLedger 庫,也就是說 CommitLog 被看作是 Raft log 進(jìn)行復(fù)制,這樣 RocketMQ 原生的零拷貝、堆外內(nèi)存的優(yōu)勢無法使用了。

(2)DLedgerController

通過引入 DLedger Controller 架構(gòu),RocketMQ 將 DLedger 選主切換的能力獨(dú)立成一個(gè)可以拔插的組件,這樣 Master-Slave 架構(gòu)也可以具有 Failover 的能力。

DLedger Controller 可以獨(dú)立部署,也可以部署在 NameServer 中,共享 NameServer 資源。

部署在 NameServer:

圖片

獨(dú)立部署:

圖片

4、Proxy

RocketMQ 5.0 為了更好地?fù)肀г圃?,?shí)現(xiàn)了計(jì)算和存儲(chǔ)相分離。把計(jì)算相關(guān)的功能抽象到了 Proxy,協(xié)議適配、權(quán)限管理、消息管理等。Broker 則專注于存儲(chǔ),架構(gòu)如下圖:?

圖片

這樣 RocketMQ 可以更好地上云,更好地進(jìn)行資源調(diào)度。?

5、總結(jié)

本文從源碼角度講述了 RocketMQ 5.0 主要的變化。

為了更好地?fù)肀г圃?RocketMQ 5.0 架構(gòu)上發(fā)生了比較大的變化,實(shí)現(xiàn)計(jì)算存儲(chǔ)相分離,并且引入 bazel 進(jìn)行構(gòu)建。

在高可用方面,RocketMQ 5.0  對(duì)傳統(tǒng)的基于 DLedger 的高可用進(jìn)行了改造,同時(shí)引入了 BrokerContainer 對(duì)等部署方案。

希望本文對(duì)你理解新版本的 RocketMQ 有所幫助。

責(zé)任編輯:姜華 來源: 君哥聊技術(shù)
相關(guān)推薦

2021-02-02 16:34:12

useMemo性能優(yōu)化函數(shù)

2010-10-19 11:30:16

IT培訓(xùn)

2020-06-12 15:06:12

GoogleCBRSWi-Fi

2012-04-30 20:44:55

2023-04-11 08:35:22

RocketMQ云原生

2024-11-08 08:34:59

RocketMQ5.Remoting通信

2022-05-23 09:18:55

RocketMQ存儲(chǔ)中間件

2009-06-11 17:18:23

EJB3.1Singleton B

2015-10-19 17:36:19

MOST內(nèi)核Linux

2023-01-16 18:22:53

Discourse開源

2021-08-07 15:29:48

區(qū)塊鏈比特幣技術(shù)

2016-11-15 15:16:39

Linux操作系統(tǒng)Windows

2022-02-10 10:52:09

網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全漏洞

2020-12-29 09:37:41

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-05-16 08:31:09

BrokerReef版本

2020-05-15 19:25:09

HTML5JavaScript前端

2022-01-22 19:32:16

QQ手機(jī)QQ移動(dòng)應(yīng)用

2021-03-24 07:16:57

RocketMQ源碼解析Topic

2024-11-14 09:10:13

消費(fèi)者RocketMQ負(fù)載均衡

2023-12-15 14:57:39

ReactNativeFabric
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91麻豆精品国产91久久久更新资源速度超快 | 日韩成人中文字幕 | 欧美成人免费在线 | 91在线最新 | 中文字幕一区二区三区精彩视频 | 99久久久无码国产精品 | 亚洲在线免费 | 日韩精品视频在线免费观看 | 日韩1区 | 国产精品1区2区3区 欧美 中文字幕 | 亚洲第一女人av | 日韩一区二区免费视频 | 欧美在线国产精品 | 91精品国产综合久久久久久首页 | 国产片一区二区三区 | 久久综合一区 | 国产高清久久久 | 日韩免费网 | 九九精品视频在线 | 日韩精品一区二区三区视频播放 | 国产乱码精品一区二区三区中文 | 日韩av最新网址 | 欧美性乱 | 欧美成人aaa级毛片在线视频 | 欧美一级黑人aaaaaaa做受 | 午夜国产| 色在线免费视频 | 国产在线精品一区二区三区 | 自拍 亚洲 欧美 老师 丝袜 | 黄色毛片网站在线观看 | 国产婷婷综合 | 国产69精品久久久久777 | 精品亚洲一区二区三区四区五区 | 国产欧美在线视频 | 欧美一区免费 | 亚洲国产精品自拍 | 亚洲 精品 综合 精品 自拍 | 亚洲精选一区二区 | 99亚洲国产精品 | 观看av| 久久一区二区三区四区 |