自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

RocketMQ 5.0 大手筆,擁抱云原生,支持流處理,高可用架構升級!

開發(fā) 架構
本文概括性地介紹了 RocketMQ 5.0 比較有亮點的新特性,希望能夠讓你對新版本有一定了解。

大家好,我是君哥。

RocketMQ 5.0 已經(jīng)發(fā)布一段時間了,今天來分享一下 RocketMQ 5.0 有哪些新特性。

1、架構變化

RocketMQ 5.0 架構上的變化主要是為了更好的走向云原生。

RocketMQ 4.x 架構如下:

圖片

Broker 向 Name Server 注冊 Topic 路由信息,Producer 和 Consumer 則從 Name Server 獲取路由信息,然后 Producer 根據(jù)路由信息向 Broker 發(fā)送消息,Consumer 則根據(jù)路由信息從 Broker 拉取消息。

這個架構存在以下幾個問題:

1.富客戶端,客戶端同時支持 Java、C++、Go 等各種語言,如果為了跟應用程序隔離,把客戶端部署到 sidecar 中,這個 sidecar 會很大,部署難度高;

2.Broker 同時承擔計算和存儲的功能,不利于云原生環(huán)境下的資源解耦。

RocketMQ 5.0 架構如下圖:

圖片

RocketMQ 5.0 在架構上主要做了兩個優(yōu)化:1.通過引入無狀態(tài)的代理模塊,將 Broker 原來的協(xié)議適配、權限管理、消息管理等計算功能抽離到了代理模塊中,Broker 則專注于存儲功能。這樣在云環(huán)境下可以更好地進行資源調(diào)度;

2.RocketMQ 5.0 基于 gRPC 支持多語言 SDK,各語言 SDK API 在本地語言層面對齊,API 非常輕量級,更容易被使用和集成。

2、集成事件、流處理

RocketMQ 5.0 采用事件驅(qū)動架構來支持消息流式處理和輕計算,可以實現(xiàn)消息的就近計算和分析。

RocketMQ 5.0 增加了 RocketMQ-EventBridge 組件,這個組件兼容標準 CloudEvents 協(xié)議標準,既可以鏈接社區(qū)活躍的生態(tài),又可以跟各大云廠商的產(chǎn)品進行集成,對云原生的支持非常友好。下面這張圖來自官網(wǎng):

圖片

(1)流式處理

為了更好地支持流失處理,RocketMQ 5.0 在原有 MessageQueue 的基礎上抽象出了邏輯隊列。一個邏輯隊列可以包含多個物理隊列,以此拼接出流式隊列。如下圖:

圖片

這樣可以更加輕量級,做到秒級的擴縮容,即使物理節(jié)點發(fā)生變化也不需要復制遷移數(shù)據(jù),數(shù)據(jù)存儲的調(diào)度也更加靈活。

(2)計算框架

在計算框架方面,RocketMQ 5.0 主要有兩個變化:

1.引入流式處理框架 RSteams,這樣 RocketMQ 自身就可以完成輕量級的理和計算;

2.引入輕量級 SQL 查詢引擎 RSQLDB,RSQLDB 可以兼容了 Flink/Blink SQL 標準,實現(xiàn)了 RocketMQ 和 Flink/Blink 的融合。比如對于輕量級的計算,可以使用 SQL 在 RocketMQ 完成,而對于重量級的計算,RocketMQ 資源受限時,可以從 RocketMQ 遷移到 Flink 處理。

3、高可用

在 RocketMQ 5.0 之前,高可用架構有兩個階段:

1.RocketMQ 4.5 之前采用 Master-Slave 部署,這種架構 Master 發(fā)生故障后是不能自動切換的,對集群的影響會比較大;

2.RocketMQ 4.5 之后采用基于 raft 協(xié)議的 DLedger 算法來進行主從切換,架構如下圖:

圖片

(1)Master-Slave 架構優(yōu)化

RocketMQ 5.0 對 Master-Slave 架構和基于 Raft 的架構都做了優(yōu)化。

對于 Master-Slave 架構的升級,RocketMQ 5.0 引入了 BrokerContainer 的概念,一個 BrokerContainer 中可以部署多個 Broker,這些 Broker 擁有獨立的端口,功能完全獨立,可以通過 admin 來增加或減少 Broker。如下圖:

圖片

這樣一個 BrokerContainer 中的多個 Broker 可以共享同一個節(jié)點的資源,提高資源利用率。

同時,在一個 BrokerContainer 中可以同時部署 Broker 的 Master 和 Slave 節(jié)點,這樣就可以通過 Master/Slave 交叉部署來實現(xiàn)節(jié)點對等,如下圖兩節(jié)點對等部署:

圖片

即使 Node1 掛了,Node2 節(jié)點中的 Broker1 可以提供讀功能,并不會丟消息,Broker2 可以提供讀寫功能。

再看下面三個節(jié)點的對等部署架構圖:

圖片

每個 Node 的 BrokerContainer 中都有 1 個 Master 跟 2 個 Slave 節(jié)點,如果其中一個 Node 掛了,其他兩個 Node 上的 Broker 可以繼續(xù)提供讀寫服務。

(2)Raft 架構優(yōu)化

基于 Raft 架構雖然可以實現(xiàn)主節(jié)點故障后自動切換,但也存在幾個問題:

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

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

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

RocketMQ 5.0 專門增加了輕量級的 DLedgerControlller 選主組件,將選主的切換能力上移,這個組件是可拔插的,既可以部署在 NameServer 中,也可以部署在本地。如下圖:

圖片

引入了 DLedgerControlller 組件后,消息主備復制還是采用 RocketMQ 原生的基于 Master-Slave 架構的復制能力,復制效率高。

4、總結(jié)

本文概括性地介紹了 RocketMQ 5.0 比較有亮點的新特性,希望能夠讓你對新版本有一定了解,深入的介紹見后面的文章。

責任編輯:姜華 來源: 君哥聊技術
相關推薦

2020-07-09 10:29:29

數(shù)據(jù)中心IT技術

2009-08-31 12:51:58

IT技術周刊國家寬帶計劃CCNP改版

2015-07-20 09:59:16

2012-08-30 10:15:06

蘋果NFC

2015-10-13 10:19:02

數(shù)據(jù)中心谷歌

2022-09-14 15:17:26

網(wǎng)絡安全收購

2016-11-03 06:27:17

三星科技新聞早報

2019-03-18 10:10:51

華為中國生態(tài)伙伴大會201

2017-09-26 18:21:38

2022-11-17 10:43:20

RocketMQ架構

2021-07-16 18:44:42

RocketMQ知識

2023-04-11 08:35:22

RocketMQ云原生

2020-09-01 13:13:59

云原生MySQL高可用

2010-05-11 11:16:14

互聯(lián)網(wǎng)

2024-07-19 14:14:37

2023-08-25 15:11:00

2022-06-12 23:01:59

元宇宙韓國貧富差距

2009-03-16 10:22:33

NehalemMac Pro開盒

2022-07-05 14:15:44

元宇宙虛擬身份社交平臺

2022-06-02 12:56:25

容器網(wǎng)絡云原生
點贊
收藏

51CTO技術棧公眾號