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

雅虎推出Pulsar发布-订阅消息系统,具备低延迟和水平扩展能力,已在多个服务中应用并实现开源。该系统支持跨数据中心复制、消息持久化等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0?wx_fmt=gif


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

-END-640?

欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 640?wx_fmt=jpeg

  • 如想加群讨论学习,请点击右下角的“加群学习”菜单入群



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值