免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

雅虎开源发布 / 订阅消息平台 Pulsar

  • 2016-09-12
  • 本文字数:952 字

    阅读完需:约 3 分钟

雅虎发布了其发布 - 订阅消息平台 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 以外的其他客户端语言。

查看英文原文 Yahoo! Open Sources Pulsar, a Pub/Sub Messaging Platform

2016-09-12 19:004656

评论

发布
暂无评论
发现更多内容

他居然发邮件请我去吃饭——邮件伪造那些事儿

Regan Yue

网络安全 8月日更 8月月更 邮件伪造

开源一夏 | JS超集对TypeScript的Map对象以及联合类型的深入实战

恒山其若陋兮

开源 8月月更

selenium脚本编写注意点(二)

Xd

极狐 GitLab 冷知识:使用 Email 也可以创建 Issue?

郭旭东

极狐GitLab JIHULAB 101

深入了解JAVA篇之内存分析

邱学喆

JVM 堆内存 内存结构 MAT

RT-Thread记录(六、IPC机制之信号量、互斥量和事件集)

矜辰所致

RT-Thread 8月月更 IPC机制

JAVA开源商城系统

源字节1号

后端开发

何为项目

尚影嫣

项目管理 8月月更

一张图进阶 RocketMQ - 消费者这个大冤种

三此君

RocketMQ 消息队列 消费者consumer 签约计划第三季

自智网络简介

俞凡

网络 自智网络

被忽略的一点:Docker的单进程模型

董哥的黑板报

Docker Kubernetes 容器 云原生 进程

一篇文章和你从Java1聊到Java18

瀛洲骇客

Java core

新专利曝光,魅族 19 热帖发布!魅族不断布局出行科技圈

Geek_2d6073

大融合!魅族星纪时代达成战略合作,董事长沈子瑜透露未来大动作

Geek_2d6073

魅族与星纪时代合作,沈子瑜透露品牌计划!补全消费者业务布局成关键

Geek_2d6073

STM32入门开发 采用IIC硬件时序读写AT24C08(EEPROM)

DS小龙哥

8月月更

开源一夏 | 使用 JavaScript 和 CSS 的随机颜色生成器

海拥(haiyong.site)

开源 8月月更

兄弟携手!魅族与星纪时代共同发力出行领域,沈子瑜成舵手

Geek_2d6073

再也不敢精通Java了——get/set篇

4ye

Java Jackson lombok 签约计划第三季

【云原生】Docker入门 -- 阿里云服务器环境下安装Docker

Bug终结者

Docker 阿里云 云原生 服务器 8月月更

构建在Findora上的Forlend,具备隐私特性的借贷协议

BlockChain先知

开源一夏 |Aeraki --- 管理 Istio 服务网格中任何 7 层协议

叶秋学长

开源 云原生 8月月更

极狐 GitLab 冷知识:Quick Actions 快速操作 Issue

郭旭东

极狐GitLab JIHULAB 101

RxJS实现“搜索”功能

掘金安东尼

前端 函数式编程 8月月更

types-paddle: 为Paddle增加Tensor类型注释特性

吴京

Python paddle machine-learning

构建在Findora上的Forlend,具备隐私特性的借贷协议

小哈区块

明年 Flyme 就上车?魅族与星纪时代战略合作后,携手发力出行领域

Geek_2d6073

相辅相成!沈子瑜掌舵魅族科技,互相协同迈入多终端互联生态

Geek_2d6073

基于EFK的Kubernetes日志采集方案

Albert Edison

Kubernetes EFK 签约计划第三季 日志收集架构

MySQL 原理与优化:行锁

老崔说架构

如何成为一名合格的文案:需要具备哪些技能

石头IT视角

雅虎开源发布/订阅消息平台Pulsar_Java_Abel Avram_InfoQ精选文章