产品优势
本文主要介绍 Kafka 作为专业的消息中间件相比其它的 MQ 所具备的优势。
专业
消息领域业内专业的消息中间件,消息保证不丢,技术体系丰富成熟。
可靠性
Kafka 要实现从 producer 到 consumer 之间的可靠的消息传送和分发。传统的 MQ 系统通常都是通过 broker 和 consumer 间的确认(ack)机制实现的,并在 broker 保存消息分发的状态。即使这样一致性也很难保证,Kafka 的做法是由 consumer 自己保存状态,也不要任何确认。这样虽然 consumer 负担更重,但更加灵活。因为不管 consumer 上任何原因导致需要重新处理消息,都可以再次从 broker 获得。
系统扩展性
Kafka 使用 zookeeper 来实现动态的集群扩展,不需要更改客户端(producer和consumer)的配置。broker 会在 zookeeper 注册并保持相关的元数据(topic,partition信息等)更新。而客户端会在 zookeeper 上注册相关的 watcher。一旦 zookeeper 发生变化,客户端能及时感知并作出相应调整。这样就保证了添加或去除 broker 时,各 broker 间仍能自动实现负载均衡。
消息处理能力
Kafka 具有近乎实时性的消息处理能力,即使面对海量消息也能够高效地存储消息和查询消息。Kafka 将详细保存在磁盘中,在其设计理念中并不惧怕磁盘操作,它以顺序读写的方式访问磁盘,从而避免了随机读写磁盘导致的性能瓶颈。
批量消息读写
Kafka 支持批量消息读写,并且会对消息进行批量的压缩,这样既提高了网络的利用率,也提高了压缩效率。
并发处理能力
Kafka 支持消息分区,每个分区中的消息保证顺序传输,而分区之间可以并发操作,这样就提高了 Kafka 并发处理能力。Kafka 也支持在线增加分区,支持在线水平扩展。
容灾能力
Kafka 支持为每个分区创建多个副本,其中只会有一个 Leader 副本负责读写,其它副本只负责与 Leader 副本进行同步,这种方式提高了数据容灾能力。Kafka 会将 Leader 副本均匀的分布在集群中的服务器上,实现性能最大化。
快速交付
一键部署,快速交付服务至用户手中,用户无需从环境配置开始去搭建 Kafka 集群。
灵活扩展
Kafka 集群可扩展、可收缩,用户可根据自己的具体业务随时对集群进行动态的伸缩,最大化契合用户的生产环境需求。
专业运维
丰富的可视化运维工具,专业运维团队,保障服务可用性及性能,让用户专注于自己的业务。
节省成本
超低成本,可根据用户实际的业务场景对集群进行按需伸缩,避免资源的浪费。