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

简介:

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

本文转自d1net(转载)

相关文章
|
2月前
|
移动开发 小程序 Go
【社区每周】小程序消息订阅插件升级为消息订阅接口(2022年8月第五期)
【社区每周】小程序消息订阅插件升级为消息订阅接口(2022年8月第五期)
19 0
|
9月前
|
消息中间件 物联网
EMQ支不支持延迟消息, 如何实现
EMQ 是一个基于 Erlang/OTP 架构的开源物联网消息中间件(MQTT Broker)。目前的 EMQ 版本(截至 2023 年 7 月)不直接支持延迟消息。然而,你可以通过以下方法实现延迟消息的功能:
72 0
|
9月前
|
消息中间件 Java 开发工具
|
存储 SQL 消息中间件
RocketMQ-Streams 首个版本发布,轻量级计算的新选择
RocketMQ-Streams 聚焦「大数据量->高过滤->轻窗口计算」场景,核心打造轻资源,高性能优势,在资源敏感场景有很大优势,最低 1Core,1G 可部署。通过大量过滤优化,性能比其他大数据提升 2-5 倍性能。广泛应用于安全,风控,边缘计算,消息队列流计算。
365 0
RocketMQ-Streams 首个版本发布,轻量级计算的新选择
|
消息中间件 自然语言处理 Cloud Native
DolphinScheduler&RocketMQ 联合 Meetup 即将重磅开启,集中展示任务调度与消息队列能力!
作为消息队列和工作流任务调度的领先者,以及 Apache 基金会孵化器毕业的中国优秀项目,RocketMQ 和 DolphinScheduler 强强联手,邀请来自互联网企业大数据专家与社区核心开发者,为大家带来一场大数据开发技术以及生产场景实践的精彩分享!
DolphinScheduler&RocketMQ 联合 Meetup 即将重磅开启,集中展示任务调度与消息队列能力!
|
消息中间件 存储 缓存
中通消息平台集群突破百万主题的技术探索
ZMS 脱胎于中通内部对消息引擎的实践经验总结,它屏蔽底层消息引擎具体实现,通过唯一标识动态路由消息,同时为开发运维人员提供自动化部署运维集群,主题、消费组申请与审批、实时监控、自动告警、容灾迁移等功能。
183 0
中通消息平台集群突破百万主题的技术探索
|
消息中间件 存储 运维
Pulsar:下一代消息引擎真的这么强吗?
最近在做新业务的技术选型,其中涉及到了对消息中间件的选择;结合我们的实际情况希望它能满足以下几个要求: 友好的云原生支持:因为现在的主力语言是 Go,同时在运维上能够足够简单。 官方支持多种语言的 SDK:还有一些 Python、Java 相关的代码需要维护。 最好是有一些方便好用的特性,比如:延时消息、死信队列、多租户等。 当然还有一些水平扩容、吞吐量、低延迟这些特性就不用多说了,几乎所有成熟的消息中间件都能满足这些要求。 基于以上的筛选条件,Pulsar 进入了我们的视野。 作为 Apache 下的顶级项目,以上特性都能很好的支持。 下面我们来它有什么过人之处。
|
消息中间件 存储 SQL
终于!RocketMQ 迎来第五个大版本,深度解读“消息、事件、流”超融合处理平台
RocketMQ 是一个来自阿里巴巴的分布式消息中间件,于 2012 年开源,并在 2017 年正式成为 Apache 顶级项目。
585 0
终于!RocketMQ 迎来第五个大版本,深度解读“消息、事件、流”超融合处理平台
我的mqtt协议和emqttd开源项目个人理解(22) - 关于客户端上线自动订阅主题
我的mqtt协议和emqttd开源项目个人理解(22) - 关于客户端上线自动订阅主题
157 0
|
消息中间件 缓存 自然语言处理
RocketMQ 5.0 POP 消费模式探秘
POP Consumer—使客户端无状态,更轻量!
RocketMQ 5.0 POP 消费模式探秘