Pulsar 是类似于 Kafka 的一个消息中间件,是 Yahoo 开源的,可以说 Pulsar 就是针对 Kafka 的痛点而来的。
下面就说说 Kafka 都有哪些痛点,以及 Pulsar 的优质特性,当然还会说下它的不足。
Kafka 于 2011 年由 LinkedIn 创建,发展到现在已经成为消息系统的王者,支持了越来越多的功能,例如:
Kafka 速度快、安装简单,适用于非常多的使用场景,极其流行。
Pulsar 是 Yahoo 在 2013 年创建的,2016年贡献给了 Apache 基金会,目前已经是 Apache 的顶级项目。
Yahoo、Verizon、Twitter 等很多公司都在使用 Pulsar 来处理海量消息。
Pulsar 声称比 Kafka 更快、运行成本更低、解决了很多 Kafka 的痛点。
Pulsar 非常灵活,可以像 Kafka 一样作为分布式日志系统,也可以作为类似 RabbitMQ 这类简单的消息系统。
Pulsar 有多种订阅类型、传递保障、保存策略。
不同的团队可以使用同一个集群,互相隔离。支持隔离、认证授权、配额。
Pulsar 使用特定的数据层来存储 topic 数据,使用了 Apache BookKeeper 作为数据账本。Broker 与存储分离。
使用分隔机制可以解决集群的扩展、再平衡、维护等问题。也提升了可用性,不会丢失数据。
因为使用了多层架构,对于 topic 数量没有限制,topic 与存储是分离的,也可以创建非持久化的 topic。
Kafka 中存储是很昂贵的,所以很少存储冷数据。Pulsar 使用了多层存储,可以自动把旧数据移动到专门的存储设备,例如 Amazon S3,但是对于客户端来讲是透明的,还可以正常使用。
Pulsar Function 是一种部署简单,轻量级计算、对开发人员友好的 API,无需像 Kafka 那样运行自己的流处理引擎。
内置了代理、多租户安全机制、可插入的身份验证等功能。
partition 被分为了小块儿,所以再平衡时非常快。
例如 Kafka、RabbitMQ 等系统都可以轻松集成。
例如 Go、Java、Scala、Node、Python 等等。
Pulsar 的确弥补了 Kafka 的很多不足,因为 Yahoo 就是为了解决这些问题而开发的 Pulsar。
但 Pulsar 也有明显的弱势,例如它的普及度比 Kafka 差太多了,而且 Kafka 有 Confluent 的专业支持,这个支持力度不是 Pulsar 能比的,由此就带来了其他问题,比如扩展插件太少、人才太少等等。
Pulsar 与 Kafka 各有所长,各有所短,没有技术是完美的,多一种技术就多一种选择,需要根据自己的情况来选择合适的技术。
参考资料:
https://itnext.io/pulsar-advantages-over-kafka-7e0c2affe2d6
Happy Learning ヾ( ̄▽ ̄)Bye~Bye~