资讯专栏INFORMATION COLUMN

技术专家:为什么我们最终选择Apache Pulsar替代Kafka?

zsy888 / 1167人阅读

摘要:如果大家想了解更多关于的知识,那么就参加本月日,由和高可用共同举办的全球互联网架构大会吧和的成员和翟佳将出席深圳站,作为中间件专场讲师分享下一代分布式消息系统的话题。参加年深圳站,可以了解业界动态,和业界专家近距离接触。

导读:在传统消息系统中,存在一些问题。一方面,消息的存储和服务一般是紧耦合的,节点的扩容和运维不便,特别是在需要多备份来保证高可用性的场景。另一方面,消息的消费模式被固定,在企业内部需要维护多套系统来保证不同的消息消费场景。另外消息系统中,多租户,多机房互备等企业级的特性和功能也不太丰富。

Apache Pulsar采用了分层的架构,解决了存储计算的耦合,同时提供了很好的扩展性和可维护性。Pulsar也通过订阅层的抽象,提供了统一的消息消费模型。特别是在Pulsar的设计之初,就注重对多租户,多机房互备等方面的需求,提供了众多完备的企业级的特性。

Apache Pulsar从2015年初在Yahoo全球近十个机房内部大规模部署,稳定服务了Yahoo内部邮箱,金融,Flickr,广告,NoSQL等众多的应用场景,一共创建了80多个租户,230多万个topic。 智联招聘在18年用Pulsar替换了线上原有的RabbitMQ,作为内部的消息总线,服务内部的20多个应用,每天会产生6亿多条消息和3TB的数据。在减轻硬件,运维和部署成本的同时,为系统提供了更好的服务质量和扩展性。

Apache Pulsar,是一个使用Apache Bookkeeper提供持久化的pub/sub消息平台,它可以提供如下特性:

持久化:采用 BookKeeper 作为存储层,灵活性强。

Ordering:每个消息有全局唯一的 ID,消息重发简单。

Delivery Guarantees:At least once, at most once 和 effectively once。

高吞吐:单个分区高达 1.8 M 消息/秒。

低延迟:99% 的生产延迟小于 5 ms。

统一消息模型:同时支持两种消费模型,流和队列。

多租户:单个群集可支持多租户和用例。

跨地域复制:原生可用。

高可用、高扩展性、易运维

架构概述

Pulsar使用分层结构,将存储机制与broker隔离开来。此体系结构为Pulsar提供以下好处:

1、独立扩展broker,负责处理Producer发来的消息并分发给消费者。通过一个全局的ZK集群来处理多种协作式任务,例如说基于地理位置的复制。并将消息存储到BookKeeper中,同时单个集群内也需要有一套ZK集群,来存储一些元数据。

2、独立扩展存储(Bookies)

3、更容易容器化Zookeeper, Broker and Bookies

4、ZooKeeper提供集群的配置和状态存储

亮点如下:

1、负载均衡器:Pulsar内置负载均衡器,可在内部将负载分配给所有broker

2、服务发现:Pulsar具有内置的服务发现功能,可以识别在何处以及如何连接到broker。

3、全局复制器:可以在为同一个命名空间配置的N个borker之间复制数据。

4、全局ZK:全局ZK用于实现跨地域复制

跨地域复制

跨地域复制是Pulsar提供的解决方案。全局集群可以在名称空间级别进行配置,以便在任意数量的集群(n-wayMesh解决方案)中进行复制。从下面的示例中,数据中心C没有消费者,但数据中心A或B中仍会根据订阅模型消费消息。

多租户

多租户特性通过对数据存储的隔离,帮助为企业建立Pulsar集群。这一内置功能将大大降低组织的基础设施建设和运营成本。

零Rebalancing时间

Pulsar的分层架构和代理的无状态性质有助于实现零Rebalancing时间。如果一个新的broker被添加到集群中,它将立即可用;无需在集群中rebalancing数据。

从Bookies的角度来看:当一个新的Bookie添加到集群中时,由于其底层的分布式日志架构(读/写隔离),该节点立刻可以写入数据。基于段复制配置的数据rebalance在后台进行,不会对集群产生任何影响。

统一的队列和流模型

Pulsar使用同一个模型支持流和队列语义。这个特性可以通过订阅模型实现。消费者使用订阅模型中的任何一个订阅主题:

1、Exclusive - 支持流语义

2、Failover - 支持流语义

3、Shared - 支持队列语义

函数

函数是能够在Pulsar内部或外部存在的本地监听器。从用途本身来看,函数可用于基于内容的路由,这将帮助企业应用程序路由预期的消息。

Proxy

当broker部署在云或Kubernetes中时,需要使用proxy将broker暴露于外部世界。Proxy本身可以提供身份验证和授权。Proxy内置将授权令牌传递给broker以进行命名空间权限验证的功能。

结论

Apache Pulsar使用基于分层体系结构的pub/sub模型,它具有跨地域复制、多租户、零Rebalancing时间等功能。

原文地址:https://medium.com/@pckeyan/a...

作者:Karthikeyan Palanivelu,由方圆翻译

不知大家读完此文,是否被Pulsar所吸引?它确实弥补了一些竞品的短板,例如地域复制、多用户、扩展性、读写隔离等等。如果大家想了解更多关于Apache Pulsar的知识,那么就参加本月21-23日,由msup和高可用共同举办的GIAC全球互联网架构大会吧!

Apache Pulsar和Apache BookKeeper的PMC成员和Committer翟佳将出席GIAC深圳站,作为中间件专场讲师分享《下一代分布式消息系统Apache Pulsar》的话题。参加2019年GIAC深圳站,可以了解业界动态,和业界专家近距离接触。

本届大会,组委会还特别邀请到了105位来自Google、微软、Oracle、eBay、百度、阿里、腾讯、商汤、图森、字节跳动、新浪、美团点评等一线互联网大厂嘉宾作为讲师出席,分享他们的实践经验、遇到的问题及解决方案。现在席位所剩不多,快来识别图中二维码报名吧!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36030.html

相关文章

  • 个推基于 Apache Pulsar 的优先级队列方案

    摘要:二基于的优先级队列方案针对以上场景,个推基于设计了第一版的优先级队列方案。架构在该方案中,个推将优先级统一设定为高中低三个级别。六总结现在个推针对优先级中间件的改造方案已经在部分现网业务中试运行,对于的稳定性,我们还在持续关注中。 showImg(https://segmentfault.com/img/remote/1460000018868129);作者:个推平台研发工程师 祥子 ...

    bingchen 评论0 收藏0
  • TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享

    摘要:当我们正准备做前期调研和设计的时候,主办方把唐长老拉去做现场导师,参赛规则规定导师不能下场比赛,囧,于是就这样被被动放了鸽子。川总早早来到现场。 本文作者是来自 TiBoys 队的崔秋同学,他们的项目 TBSSQL 在 TiDB Hackathon 2018 中获得了一等奖。TiDB Batch and Streaming SQL(简称 TBSSQL)扩展了 TiDB 的 SQL 引擎...

    Profeel 评论0 收藏0
  • TBSSQL 的那些事 | TiDB Hackathon 2018 优秀项目分享

    摘要:当我们正准备做前期调研和设计的时候,主办方把唐长老拉去做现场导师,参赛规则规定导师不能下场比赛,囧,于是就这样被被动放了鸽子。川总早早来到现场。 本文作者是来自 TiBoys 队的崔秋同学,他们的项目 TBSSQL 在 TiDB Hackathon 2018 中获得了一等奖。TiDB Batch and Streaming SQL(简称 TBSSQL)扩展了 TiDB 的 SQL 引擎...

    KnewOne 评论0 收藏0
  • Kafka原理你真的知道吗?

    摘要:而在服务器中应该充分利用多线程来处理执行逻辑。能保证所在的失效,该消息仍然可以从新选举的中获取,不会造成消息丢失。这意味着无需等待来自的确认而继续发送下一批消息。 showImg(https://segmentfault.com/img/remote/1460000018373147?w=702&h=369); 1.概述 Apache Kafka最早是由LinkedIn开源出来的分布式...

    n7then 评论0 收藏0
  • Kafka原理你真的知道吗?

    摘要:而在服务器中应该充分利用多线程来处理执行逻辑。能保证所在的失效,该消息仍然可以从新选举的中获取,不会造成消息丢失。这意味着无需等待来自的确认而继续发送下一批消息。 showImg(https://segmentfault.com/img/remote/1460000018373147?w=702&h=369); 1.概述 Apache Kafka最早是由LinkedIn开源出来的分布式...

    BLUE 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<