返回
BIGO 实时消息系统:从 Kafka 到 Pulsar
见解分享
2023-12-27 11:36:06
**从 Kafka 到 Pulsar**
BIGO 是一家全球领先的社交和娱乐公司,旗下拥有多款热门应用,如 BIGO LIVE、Likee 等。随着业务的不断增长,BIGO 对实时消息系统的需求也越来越大。
2016 年,BIGO 开始使用 Kafka 作为其实时消息系统。Kafka 是一个分布式的发布/订阅消息系统,具有高吞吐量、低延迟、高可用性等优点。然而,随着业务的快速发展,Kafka 的一些缺点也逐渐暴露出来,例如:
* 扩缩容困难:Kafka 的存储和计算是耦合在一起的,这使得扩缩容非常困难。当需要增加或减少服务器时,必须同时增加或减少存储和计算资源,这非常耗时耗力。
* 运维成本高:Kafka 的运维成本非常高,因为它需要专门的团队来进行运维,包括部署、监控、故障处理等。
* 性能问题:随着业务的增长,Kafka 的性能也逐渐成为瓶颈。在高并发的情况下,Kafka 的吞吐量和延迟都会受到影响。
**转向 Pulsar**
为了解决 Kafka 的这些问题,BIGO 在 2019 年开始转向使用 Pulsar。Pulsar 是一个新一代的分布式发布/订阅消息系统,具有以下优点:
* 存储、计算分离:Pulsar 的存储和计算是分离的,这使得扩缩容非常容易。当需要增加或减少服务器时,只需增加或减少存储或计算资源即可,无需同时增加或减少存储和计算资源。
* 运维成本低:Pulsar 的运维成本非常低,因为它不需要专门的团队来进行运维,只需使用 Kubernetes 等工具即可轻松部署和管理 Pulsar 集群。
* 性能优异:Pulsar 的性能非常优异,它具有高吞吐量、低延迟、高可用性等优点,可以满足各种业务需求。
**Pulsar 的存储、计算分离架构**
Pulsar 的存储、计算分离架构是其能够完美解决 Kafka 扩缩容问题的主要原因。Pulsar 将存储和计算分离成了两个独立的组件:
* BookKeeper:BookKeeper 是 Pulsar 的存储组件,负责存储消息。BookKeeper 是一个分布式的存储系统,具有高可用性、高性能等优点。
* Pulsar Broker:Pulsar Broker 是 Pulsar 的计算组件,负责处理消息。Pulsar Broker 是一个轻量级的组件,具有高性能、低延迟等优点。
存储和计算分离的架构使 Pulsar 能够非常容易地进行扩缩容。当需要增加或减少服务器时,只需增加或减少 BookKeeper 或 Pulsar Broker 的服务器即可,无需同时增加或减少存储和计算资源。这大大降低了扩缩容的难度和成本。
**Pulsar 的性能优势**
Pulsar 的性能非常优异,它具有高吞吐量、低延迟、高可用性等优点。在高并发的情况下,Pulsar 的吞吐量和延迟都不会受到影响。Pulsar 的性能优势主要得益于以下几个方面:
* 基于内存的存储:Pulsar 将消息存储在内存中,这使得消息的读写速度非常快。
* 多级缓存:Pulsar 使用多级缓存来提高消息的访问速度。
* 流式处理:Pulsar 使用流式处理来处理消息,这使得 Pulsar 能够非常高效地处理大量消息。
**总结**
Pulsar 是一个非常优秀的实时消息系统,它具有存储、计算分离的架构、优异的性能、低廉的运维成本等优点。BIGO 从 Kafka 过渡到 Pulsar 后,成功解决了 Kafka 的扩缩容问题,提高了实时消息系统的性能,降低了运维成本。Pulsar 非常适合用于构建高吞吐量、低延迟、高可用的实时消息系统。