写点什么

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

评论

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

🏆「推荐收藏」【Git实战专题】代码提交错误怎么办?教你如何回退版本!

洛神灬殇

git git flow git reset git revert

🏆【Java 技术之旅】带你深入理解和认识SPI运作机制

洛神灬殇

Java 抽象 spi 7月日更

Linux ssh命令详解,连ssh命令都不了解就别说自己会用Linux了

北游学Java

Java Linux SSH

2021Java面试总结!Java中VO的使用

Java 程序员 面试 后端

2021Java高级面试题总结:docker运行jar包依赖和程序分开

程序员 面试 后端

IM与办公平台的关系设计

superman

产品经理 架构师 IM 移动办公平台 自建移动办公

2021吊打面试官系列!mysql数据库版本最新

Java 程序员 面试 后端

2021年您应该知道的技术之一!Javafor循环乘法表

策划Java工程师

Java 程序员 面试 后端

从0到1亿用户的架构设计

俞凡

架构

2021Java面试心得:kafka工具

Java 程序员 面试 后端

2021Java高级面试题!Java面试问题大全及答案大全下载

Java 程序员 面试 后端

2021京东Java面试真题:Java枚举的作用与好处

Java 程序员 面试 后端

2021年“金三银四”来袭!Java开发接口利用http协议

策划Java工程师

Java 程序员 面试 后端

golang--字典树

en

数据结构与算法 字典树

2021Java高级面试题总结!Java数组添加另一个数组

Java 程序员 面试 后端

2021年您应该知道的技术之一!Java工程师一天工作多久

策划Java工程师

Java 程序员 面试 后端

2021Java面试心得:docker运行springboot项目

Java 程序员 面试 后端

HarmonyOS开发者日杭州站举办,多维赋能开发者实现高效开发

科技汇

奥运神颜运动员

6979阿强

吴亦凡都美竹事件:男人全员恶人?

6979阿强

iOS开发底层面试攻略

面试 移动开发 ios开发

2021年Java面试心得:Java基本类型对应的包装类型

策划Java工程师

Java 程序员 面试 后端

Python开发篇——如何在Flask下编写JWT登录

吴脑的键客

Python flask JWT

2021年Java面试心得:Java开发工程师试用期一般多久

策划Java工程师

Java 程序员 面试 后端

云小课 | 一分钟了解AppCube中的应用

华为云开发者联盟

低代码 云小课 应用 AppCube 应用魔方

2021年Java开发实战!Java获取系统日期时间

Java 程序员 面试 后端

2021年Java面经分享:mysql创建数据表

策划Java工程师

Java 程序员 面试 后端

2021年Java面试心得:西安Java电商开发招聘

策划Java工程师

Java 程序员 面试 后端

7月日更,FAIL!FAIL?

Nydia

云计算架构师-带你安装MySQL数据库并去除安全隐患

学神来啦

MySQL 数据库 Linux 运维 MariaDB

【翻译】数据包的旅程 - OSI模型

luojiahu

计算机网络 OSI模型

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