雅虎開源釋出/訂閱訊息平臺Pulsar
雅虎釋出了其釋出-訂閱訊息平臺Pulsar,這個平臺在他們內部已經用在了多項服務的生產環境之中。
按照雅虎的說法,Pulsar是一個低延遲的釋出/訂閱訊息系統,它可以進行水平擴充套件,跨多個主機和資料中心。雅虎從2015年第二季度開始,就一直在郵件、財經、Gemini Ads、Sherpa(雅虎的分散式key-value服務——譯註)以及體育相關的功能中使用Pulsar。通過將其開源,他們希望Pulsar能夠與其他開源專案進行整合,從而促使它得到廣泛的應用。雅虎已經將Pulsar部署到了十個以上的資料中心中,在超過140萬主題(topic)的情況下,達到了每天1000億條訊息,而平均的釋出延遲時間在5毫秒以內。Pulsar能夠保證訊息的正常投遞,並會為訊息提供兩個持久化副本、針對訊息讀者的自動化遊標管理以及跨資料中心的複製。
我們可以搭建Pulsar來提供訊息即服務(messaging-as-a-service)功能,使其執行在一個叢集或多個叢集上,並且能夠通過API對其進行管理:新增/移除使用者、新增計算和儲存容量、核算和監控等等。客戶端(包括生產者和消費者)都會作為租戶(tenant),它們能夠通過一個Java庫來訪問這些功能。這個庫會負責服務發現、訊息投遞以及其他相關的任務。
Pulsar採用了主題的理念,將其作為訊息生產者和消費者之間的媒介。生產者會採用同步或非同步的方式將訊息傳送到主題上。訊息可以進行批量處理或壓縮(LZ4和ZLIB)。客戶端通過訂閱的方式來消費訊息,處理過程可以進行排除(exclusive)、共享(round-robin)或故障恢復。
為了保證訊息的投遞,Pulsar會通過Apache BookKeeper ledger(指的是獨立的log——譯註)將訊息持久化到穩定的儲存中。讀取和寫入會指向不同的物理磁碟,從而儘可能降低釋出帶來的延遲。雅虎確認如果採用SSD作為bookie(指的是Bookkeeper的主機——譯註) journal裝置的話,Pulsar“在保證兩個副本和完全有序的情況下,能夠保證第99個百分位(99 percentile)達到5毫秒”。
雅虎將來計劃支援非持久化的訊息,從而減少訊息broker之間主題遷移的時間,目標是從現在的10秒降低到1秒以下,將訊息釋出的第99.9個百分位達到5毫秒以下(目前是第99個百分位),並且還要支援除了Java以外的其他客戶端語言。
本文轉自d1net(轉載)
相關文章
- Redis的訊息釋出和訂閱Redis
- 釋出於訂閱訊息系統-KafkaKafka
- 使用Spring Data Redis 釋出訂閱訊息SpringRedis
- 輕鬆上手 PHP + RabbitMQ 訊息釋出與訂閱PHPMQ
- vue - Vue腳手架/訊息訂閱與釋出Vue
- SpringBoot+Redis 實現訊息訂閱釋出Spring BootRedis
- js訊息訂閱和釋出實現元件之間通訊JS元件
- killbill: 開源訂閱計費和支付平臺
- 基於Redis訊息的訂閱釋出應用場景Redis
- ZMQ釋出-訂閱模式踩坑之——訊息丟失部分MQ模式
- 直播平臺開發中,策略模式和釋出訂閱模式的使用模式
- 訊息推送平臺終於要釋出啦!
- Kafka(分散式釋出-訂閱訊息系統)工作流程說明Kafka分散式
- 博文推薦|Apache Pulsar: 統一訊息流平臺Apache
- Redis 釋出訂閱模式:原理拆解並實現一個訊息佇列Redis模式佇列
- 釋出訂閱EventEmitterMIT
- Redis釋出訂閱Redis
- 釋出-訂閱模式模式
- 釋出訂閱模式模式
- 分散式訊息流平臺:不要只想著Kafka,還有Pulsar分散式Kafka
- 利用redis的hash結構搭建訊息服務(發訊息,訂閱訊息,消費訊息,退訂)Redis
- C++釋出訂閱者模式:實現簡單訊息傳遞系統C++模式
- 設計模式之釋出訂閱模式(2) Redis 釋出/訂閱模式設計模式Redis
- JS訂閱釋出模式JS模式
- Redis的釋出訂閱Redis
- 釋出訂閱管道化
- ActiveMQ釋出訂閱模式MQ模式
- openGauss 釋出訂閱
- 使用Java接入小程式訂閱訊息!Java
- Redis 的訂閱與釋出Redis
- Javascript(七)釋出-訂閱模式JavaScript模式
- Laravel Redis釋出與訂閱.LaravelRedis
- LightDB訂閱和釋出
- RabbitMQ 入門 - 釋出 / 訂閱MQ
- 釋出訂閱模式學習模式
- Redis之釋出與訂閱Redis
- 詳談:Redis事務和訊息訂閱Redis
- 設計模式之釋出訂閱模式(1) 一文搞懂釋出訂閱模式設計模式