真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何分析ApachePulsar的訪問模式與分層存儲

本篇文章為大家展示了如何分析Apache Pulsar的訪問模式與分層存儲,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)擁有十余年成都網(wǎng)站建設工作經(jīng)驗,為各大企業(yè)提供成都網(wǎng)站設計、成都網(wǎng)站制作服務,對于網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、成都app軟件開發(fā)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名注冊等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設計、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等網(wǎng)站化運作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設項目的能力。

Apache Pulsar 是 Apache 軟件基金會頂級項目,是下一代云原生分布式消息流平臺,集消息、存儲、輕量化函數(shù)式計算為一體,采用計算與存儲分離架構(gòu)設計,支持多租戶、持久化存儲、多機房跨區(qū)域數(shù)據(jù)復制,具有強一致性、高吞吐以及低延時的高可擴展流數(shù)據(jù)存儲特性。

為什么選擇 Apache BookKeeper - Part 1 中談到了 Apache Pulsar 如何利用 BookKeeper 多副本的工作方式以及 BookKeeper 中不同的 I/O 模式。

下面將討論在 Pulsar 中多副本怎樣與不同的 I/O 模式交互,以及 Pulsar 如何通過這種交互實現(xiàn)分層存儲等。

從本質(zhì)上看,Pulsar 采用分層架構(gòu),而這種分層架構(gòu)使得每種 I/O 模式都可以獨立工作,因此讀寫之間永遠不會相互干擾。

分層還簡化了以與 Pulsar 完全集成的方式添加存儲層的操作,從而在對使用 Pulsar 的開發(fā)者不產(chǎn)生任何影響的條件下,降低增加存儲層的成本,并提高新增存儲層的可擴展性。

Pulsar 是一個提供發(fā)布-訂閱和排隊語義的消息系統(tǒng)??蛻舳丝梢允?producer 或 consumer,也可以是兩者組合。

生產(chǎn)客戶端向 broker 發(fā)送消息,消費客戶端從 broker 消費消息。Pulsar 將消息整理存放在 topic 中,并把 topic 分配給 broker。

在一個 topic 內(nèi),Pulsar 保證全序原子廣播(Total Order Atomic Broadcast),也就是說,一旦 Pulsar broker 向 producer ack topic 中某消息的發(fā)布,相對于同一 topic 中的其他消息,此消息將永遠不會丟失、被復制或被重新排序。并且,消息順序完全相同,所有 consumer 讀取消息的順序也完全相同。

如何分析Apache Pulsar的訪問模式與分層存儲

Pulsar 使用 BookKeeper 作為 topic 積壓消息的后備存儲。Pulsar broker 作為 BookKeeper 存儲頂部的無狀態(tài)服務層。

當 producer 向 Pulsar 發(fā)送消息時,Pulsar 立刻將此消息寫入 BookKeeper。一旦 BookKeeper ack 寫操作,broker 便可以向 producer ack 消息發(fā)布,并且 consumer 可以讀消息。

消息系統(tǒng)中通常有三種 I/O 模式。

  • 寫:發(fā)布消息到消息系統(tǒng);

  • 追尾讀:寫入后,立即發(fā)送消息給活躍訂閱者 ;

  • 追趕讀:新 consumer 想從最新消息之前的某個點開始讀取,或現(xiàn)有 consumer 長時間離線后返回時,consumer 從日志后綴中讀取大量消息以進行追趕。不同于大多數(shù)其他消息系統(tǒng),Pulsar 中每種 I/O 模式之間相互隔離。

最有趣的 I/O 模式是寫模式,所有其他模式都遵循該模式。當 Pulsar broker 想為某個 topic 持久化消息時,broker 會將此消息寫入一組 BookKeeper 節(jié)點,這組節(jié)點就定義為該 topic 日志的寫入 quorum。

每個接收消息的 BookKeeper 節(jié)點都將此消息添加到節(jié)點的日志文件中,而節(jié)點的日志文件存放于專用磁盤上。當足夠多的節(jié)點 ack 寫入以滿足日志的多副本(即 ack quorum)要求時,則認為寫操作已提交,并已向 producer ack。

從這一點開始,該消息不可變,并且該消息將會一直占用日志偏移量。其他消息都不可以占用這個偏移量,此消息也不可再更改。

可以利用消息的不可變性有效地服務于消息系統(tǒng)的其他 I/O 模式。在 BookKeeper 節(jié)點日志中寫入消息是規(guī)范的,并且如果用戶停在這里,仍然可以訪問此消息。

但是,這樣做效率不高,因為每次讀都需要掃描所有日志以查找所需消息,并且不能截斷日志來釋放磁盤空間。不過已提交消息的不可變性允許在多個位置緩存該消息,以有效地進行讀操作。

如何分析Apache Pulsar的訪問模式與分層存儲

第一級緩存是 Pulsar broker,可用于追尾讀。提交消息后,可以直接將消息發(fā)給所有與此 topic 相關(guān)的訂閱者,而不必使用磁盤。

下一級緩存是 BookKeeper 節(jié)點上的 ledger 存儲磁盤。將消息寫入 BookKeeper 節(jié)點上的日志時,同時也寫入到定期 flush 的 ledger 存儲磁盤的內(nèi)存緩沖區(qū)。

BookKeeper 節(jié)點使用此磁盤提供讀操作。在 Pulsar 中,從內(nèi)存緩沖區(qū)讀消息很少見。追尾 consumer 通常直接從 Pulsar 的緩存中讀消息。追趕 consumer 通常請求很早之前的消息,因此這些消息一般不存儲在內(nèi)存緩沖區(qū)。

Ledger 存儲磁盤服務于追趕讀。Ledger 存儲磁盤采用的存儲消息的格式不僅保證在同一 topic 上盡可能按順序讀取,還優(yōu)化了在同一磁盤上存儲多個不同 topic 的能力。由于 ledger 存儲磁盤與日志磁盤相互隔離,讀操作不會影響日志磁盤中按順序?qū)懭氲男阅堋?/p>

如果為 Pulsar 配置了“分層存儲”,則最后一級緩存為長期存儲。分層存儲允許用戶對 topic backlog 中的較舊部分采用更節(jié)約成本的存儲形式。

分層存儲利用了消息的不可變性,但粒度更大,因為在長期存儲中單獨存儲每條消息會很浪費空間。Pulsar topic 日志由分片組成,每個分片默認對應一個包含 50000 條消息的序列?;钴S分片只有一個,活躍分片之前的分片將關(guān)閉。

當分片關(guān)閉時,無法繼續(xù)添加新消息。假定分片中的單條消息不可變,并且單條消息的偏移量不可變,則此分片不可變。因此可以復制不可變對象到想要的任何位置。

要在 Pulsar 中使用分層存儲,用戶必須使用基于時間或基于大小的策略來配置 topic 命名空間以卸載分片。當命名空間中的 topic 達到策略中定義的閾值時,Pulsar broker 將 topic 日志中最舊的分片復制到長期存儲中,直到該 topic 低于策略閾值。

經(jīng)過一段時間后,Pulsar 從 BookKeeper 中刪除原來的分片,以釋放磁盤空間。

Pulsar 支持將 Amazon S3 和 S3 兼容的對象存儲用于長期存儲,也支持 Azure 存儲,并且從 Pulsar 2.2.0 起支持谷歌云存儲。

上述內(nèi)容就是如何分析Apache Pulsar的訪問模式與分層存儲,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:如何分析ApachePulsar的訪問模式與分層存儲
網(wǎng)頁路徑:http://weahome.cn/article/ghjiej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部