溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Pulsar的特性與優(yōu)勢有哪些

發(fā)布時間:2021-12-15 15:04:00 來源:億速云 閱讀:703 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Pulsar的特性與優(yōu)勢有哪些”,在日常操作中,相信很多人在Pulsar的特性與優(yōu)勢有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Pulsar的特性與優(yōu)勢有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

為什么選擇 Pulsar

現(xiàn)狀及痛點
在沒使用 Pulsar 之前,涂鴉使用的架構(gòu)基本如下圖所示。消息進入接入層后,通過 Kafka進行消息分發(fā)轉(zhuǎn)化,這個消息集群主要在做一些消息分發(fā)和路由的功能。之后再通過 HTTP 投遞給第三方。

Pulsar的特性與優(yōu)勢有哪些

以上的架構(gòu)模式存在一些業(yè)務(wù)痛點:

1. HTTP 投遞方式不靈活,容易丟消息  
基于網(wǎng)絡(luò)原因、公司服務(wù)器規(guī)模不足以支撐業(yè)務(wù)時,都有可能出現(xiàn)重啟過程中消息丟失的現(xiàn)象。如果想要滿足這個需求,就需要對消息的持久化進行額外的處理。

2. Kafka topic 數(shù)量與日俱增,運維成本高
隨著接入廠家和開發(fā)者數(shù)量的增加,導(dǎo)致 Kafka 的運維層面壓力會比較大,人力和時間等耗費比較高。

3. Kafka 自身的一些痛點,比如 Rebalance 機制  
業(yè)務(wù)集群需要經(jīng)常升級,consumer 就會經(jīng)常斷連。斷連情況下,Rebalance 的過程是很長的,導(dǎo)致消息堆積量加大,造成用戶體驗下降。同時堆積后的重啟,在大集群量情況下,對消費端的壓力會非常大。 

4. 租戶之間會相互影響
如果有一個租戶掛掉并且沒有進行及時處理,就會一直堆積在 Kafka 的處理器上,耽誤后續(xù)進程,降低消息上報性能,影響到其他租戶。


Pulsar 的特性與優(yōu)勢   
Apache Pulsar 是靈活的發(fā)布-訂閱消息系統(tǒng),采用分層分片架構(gòu)。 

1. 豐富的投遞/訂閱策略
Pulsar 做了隊列模型和流模型的統(tǒng)一,在 Topic 級別只需保存一份數(shù)據(jù),同一份數(shù)據(jù)可多次消費。以流式、隊列等方式計算不同的訂閱模型大大提升了靈活度。

Pulsar的特性與優(yōu)勢有哪些
 
2. 運維難度?。ㄏ啾?Kafka),Rebalance 機制反應(yīng)迅速
主要體現(xiàn)在跨地域復(fù)制方面。Pulsar 使用計算與存儲分離的云原生架構(gòu),數(shù)據(jù)從 Broker 搬離,存在共享存儲內(nèi)部。上層是無狀態(tài) Broker,復(fù)制消息分發(fā)和服務(wù);下層是持久化的存儲層 Bookie 集群。

Pulsar 存儲是分片的,這種架構(gòu)可以避免擴容時受限制,實現(xiàn)數(shù)據(jù)的獨立擴展和快速恢復(fù)。

3. 多租戶隔離優(yōu)勢
租戶和命名空間(namespace)是 Pulsar 支持多租戶的兩個核心概念。

  • 在租戶級別,Pulsar 為特定的租戶預(yù)留合適的存儲空間、應(yīng)用授權(quán)與認證機制。
  • 在命名空間級別,Pulsar 有一系列的配置策略(policy),包括存儲配額、流控、消息過期策略和命名空間之間的隔離策略。


現(xiàn)階段結(jié)構(gòu)   
剛好這三點特性,對應(yīng)了之前涂鴉面臨的痛點,所以在契合下開始轉(zhuǎn)向使用 Pulsar 來替代了 Kafka。

Pulsar的特性與優(yōu)勢有哪些

目前 Pulsar 的架構(gòu)已應(yīng)用到涂鴉智能平臺,成為一個主導(dǎo)消息隊列,后續(xù)也在圍繞 Pulsar 進行一些二次開發(fā)和周邊服務(wù)搭建。

以前信息的投遞會有 5-6 s 的延遲,現(xiàn)在大概只有 1 s,整體的提升和改進是非常大的。

當然用 Pulsar 替代 Kafka 的過程,也有一些缺點,比如:成本高。這個過程就需要督促第三方開發(fā)者去替換 SDK,同時過渡時期還要支持兩套系統(tǒng)。

剛好最近 StreamNative 開源了 KoP,可以讓兩者之間的遷移更簡單,也算解決了這一問題。

Pulsar的特性與優(yōu)勢有哪些

上圖就是 BookKeeper 內(nèi)的 Pulsar 架構(gòu)示意圖,其中 zk 是指 ZooKeeper。更多關(guān)于 Broker、Bookie 和 Proxy 等概念介紹,可以參考之前 TGIP-CN 的回顧:  Message Lifecycle:Pulsar 里的信息傳遞究竟是什么樣子  。

同時借由存儲端 BookKeeper 的存儲中間件特性,使得 Pulsar 現(xiàn)在的存儲分離架構(gòu)并沒有增加額外的使用復(fù)雜度。

Proxy 在這里提供了類似 TCP 的一個代理,為 Consume 提供了“尋址”的功能。Consumer 無需關(guān)心真實的 Broker 地址,連上 Proxy 后會直接從 ZooKeeper 里拉取 Topic 的位置等數(shù)據(jù),此過程中 Consumer 只需保證穩(wěn)定的連接即可。

但 Proxy 并沒有進行負載均衡的功能,這些都是在 Broker 上進行的。這一點也在之前的 TGIP-CN 直播中提到過。

當然針對涂鴉的一些使用場景,他們也在 Proxy 上進行了一些擴展。



Dubbo-go + Pulsar 的實例應(yīng)用

Pulsar的特性與優(yōu)勢有哪些

上圖是一開始使用 Pulsar 時的架構(gòu)圖。生產(chǎn)者投遞消息后,利用 in Topic 路由解析出來并進行投遞。但是這個過程中需要構(gòu)建多個 Pulsar 集群,導(dǎo)致運維程度的增加。

Pulsar的特性與優(yōu)勢有哪些

現(xiàn)在在 Pulsar 架構(gòu)里增加一個“source”,它可以用來收集之前的 topic,搭配 function 功能進行傳遞。

之后在 function 部件內(nèi)嵌入了 Dubbo-go consumer,把一些復(fù)雜的路由規(guī)則通過 Dubbo-go  consumer 進行拉取。同時借用 Pulsar broker 的整體集群管理,減少了運維的業(yè)務(wù)壓力。

Pulsar的特性與優(yōu)勢有哪些

Dubbo-go
具體關(guān)于 Dubbo 的一些 demo 展示或者使用方法,可以參考以下網(wǎng)站。

  • Dubbo 中文網(wǎng)站:
    http://dubbo.apache.org/zh-cn/

  • GitHub 倉庫:
    https://github.com/apache/dubbo-go

Dubbo-go 的架構(gòu)示意圖可以參考下方:

Pulsar的特性與優(yōu)勢有哪些
Pulsar的特性與優(yōu)勢有哪些

到此,關(guān)于“Pulsar的特性與優(yōu)勢有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI