雅虎开源发布/订阅消息平台Pulsar
雅虎發(fā)布了其發(fā)布-訂閱消息平臺(tái)Pulsar,這個(gè)平臺(tái)在他們內(nèi)部已經(jīng)用在了多項(xiàng)服務(wù)的生產(chǎn)環(huán)境之中。
\\按照雅虎的說(shuō)法,Pulsar是一個(gè)低延遲的發(fā)布/訂閱消息系統(tǒng),它可以進(jìn)行水平擴(kuò)展,跨多個(gè)主機(jī)和數(shù)據(jù)中心。雅虎從2015年第二季度開(kāi)始,就一直在郵件、財(cái)經(jīng)、Gemini Ads、Sherpa(雅虎的分布式key-value服務(wù)——譯注)以及體育相關(guān)的功能中使用Pulsar。通過(guò)將其開(kāi)源,他們希望Pulsar能夠與其他開(kāi)源項(xiàng)目進(jìn)行集成,從而促使它得到廣泛的應(yīng)用。雅虎已經(jīng)將Pulsar部署到了十個(gè)以上的數(shù)據(jù)中心中,在超過(guò)140萬(wàn)主題(topic)的情況下,達(dá)到了每天1000億條消息,而平均的發(fā)布延遲時(shí)間在5毫秒以?xún)?nèi)。Pulsar能夠保證消息的正常投遞,并會(huì)為消息提供兩個(gè)持久化副本、針對(duì)消息讀者的自動(dòng)化游標(biāo)管理以及跨數(shù)據(jù)中心的復(fù)制。
\\我們可以搭建Pulsar來(lái)提供消息即服務(wù)(messaging-as-a-service)功能,使其運(yùn)行在一個(gè)集群或多個(gè)集群上,并且能夠通過(guò)API對(duì)其進(jìn)行管理:添加/移除用戶(hù)、添加計(jì)算和存儲(chǔ)容量、核算和監(jiān)控等等。客戶(hù)端(包括生產(chǎn)者和消費(fèi)者)都會(huì)作為租戶(hù)(tenant),它們能夠通過(guò)一個(gè)Java庫(kù)來(lái)訪問(wèn)這些功能。這個(gè)庫(kù)會(huì)負(fù)責(zé)服務(wù)發(fā)現(xiàn)、消息投遞以及其他相關(guān)的任務(wù)。
\\Pulsar采用了主題的理念,將其作為消息生產(chǎn)者和消費(fèi)者之間的媒介。生產(chǎn)者會(huì)采用同步或異步的方式將消息發(fā)送到主題上。消息可以進(jìn)行批量處理或壓縮(LZ4和ZLIB)。客戶(hù)端通過(guò)訂閱的方式來(lái)消費(fèi)消息,處理過(guò)程可以進(jìn)行排除(exclusive)、共享(round-robin)或故障恢復(fù)。
\\為了保證消息的投遞,Pulsar會(huì)通過(guò)Apache BookKeeper ledger(指的是獨(dú)立的log——譯注)將消息持久化到穩(wěn)定的存儲(chǔ)中。讀取和寫(xiě)入會(huì)指向不同的物理磁盤(pán),從而盡可能降低發(fā)布帶來(lái)的延遲。雅虎確認(rèn)如果采用SSD作為bookie(指的是Bookkeeper的主機(jī)——譯注) journal設(shè)備的話,Pulsar“在保證兩個(gè)副本和完全有序的情況下,能夠保證第99個(gè)百分位(99 percentile)達(dá)到5毫秒”。
\\雅虎將來(lái)計(jì)劃支持非持久化的消息,從而減少消息broker之間主題遷移的時(shí)間,目標(biāo)是從現(xiàn)在的10秒降低到1秒以下,將消息發(fā)布的第99.9個(gè)百分位達(dá)到5毫秒以下(目前是第99個(gè)百分位),并且還要支持除了Java以外的其他客戶(hù)端語(yǔ)言。
\\查看英文原文:Yahoo! Open Sources Pulsar, a Pub/Sub Messaging Platform
總結(jié)
以上是生活随笔為你收集整理的雅虎开源发布/订阅消息平台Pulsar的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《深入浅出Nodejs》笔记——模块机制
- 下一篇: Centos7安装mariadb gal