写点什么

雅虎开源发布 / 订阅消息平台 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:004720

评论

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

科学提升认知方法之贝叶斯公式

奈学教育

贝叶斯公式

SpringCloud-OpenFeign源码

云淡风轻

Spring Cloud

Sula - 可能是西湖区最好用的antd配置框架

开远

大前端 antd sula 配置化开发

中台上线半年,我总结出了“七宗罪”

punkboy

中台 企业中台 后台开发 业务中台 后台

如何让解决无法访问 GitHub 的问题?

JackTian

GitHub

大话设计模式 | 0 面向对象基础

Puran

C# 设计模式

除了公关,我还能为公司做点什么?(系列1)

邓瑞恒Ryan

学习 个人成长 自我管理 成长 职业成长

源码分析 | 像盗墓一样分析Spring是怎么初始化xml并注册bean的

小傅哥

源码分析 小傅哥 spring源码 bean注入过程

【译文】为什么说Rust是机器人技术的未来

袁承兴

rust 机器人 嵌入式

架构师必备的ToB产品交付之双轮驱动思维模型

常平

产品 极客大学架构师训练营

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(四)

图雀社区

Vue Node

愚蠢写作术(2):怎么让你的文章变得冷冰冰

史方远

学习 个人成长 写作

为什么你成不了「超级个体」?

非著名程序员

程序员 互联网 提升认知 认知提升

GitHub上10个不可错过的另类有趣项目

码农神说

GitHub 开源 程序员

重磅推出:第14份年度敏捷状态报告(最新2020)

Bob Jiang

敏捷 调查报告 state of agile

多来点胜利,对冲颓丧

zhoo299

成长 备忘

csapp-chapter1

卓丁

深入理解计算机系统 csapp

JUC整理笔记五之梳理Varhandle(下)

JFound

Java

ArrayList浅析

章小传

Java collection 原理 ArrayList

自定义 SpringBootStarter

子路无倦

React之Context源码分析与实践

费马

源码分析 React useContext Context React-Router

做一个纸上谈兵的项目经理

escray

JDK 15 都发布了,可 Java 8 依然是最爱

古时的风筝

Java Java 25 周年 Java版本

分布式事务 - 三种常见的解决方案

Java收录阁

分布式事务

N皇后问题之位运算解法

孙苏勇

算法 DFS 位运算

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(五)

图雀社区

Vue Node

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(六)

图雀社区

node.js Vue

我的个人知识管理方法

lidaobing

个人成长 知识管理 PKM

路径依赖 - 偶然决策导致的依赖。

石云升

思维模型 路径依赖 网络效应 沉没成本 价值网依赖

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(三)

图雀社区

vue.js Vue Node

csapp-chapter2

卓丁

深入理解计算机系统 csapp

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