Kafka 基本概念

Kafka基本背景

Apache kafka 是一种分布式的、基于发布/订阅的系统,由Scala语言编写而成。

  • Kafka具有近乎实时性的消息处理能力,即使面对海量消息也能够高效的存储消息和查询消息。Kafka将信息保存在磁盘中,在其设计理念中并不惧怕磁盘操作,它以顺序读写的方式访问磁盘,从而避免了随机读写磁盘导致性能瓶颈。
  • Kafka支持批量读写消息,并且会对消息进行压缩,这样既提高了网络的利用率,也提高了压缩效率。
  • Kafka支持消息分区,每个分区中的消息保证顺序传输,而分区之间则可以并发操作,这样就提高了Kafka的并发能力。
  • Kafka 也支持在线增加分区,支持在线水平扩展。
  • Kafka 支持为每个分区创建多个副本,其中只会有一个Leader副本负责读写,其中他副本只负责与Leader副本进行同步,这种方式提高了数据的容灾能力。Kafka会将Leader副本均匀分布在集群中的服务器上,实现性能最大化。
    随着Kafka在各大公司的实践应用,Kafka的应用场景变得越来越丰富。
  • 在应用系统中可以将Kafka最为传统消息的中间件,在实现消息队列和消息发布/订阅,在某些场景下,性能会超越RabbitMQ、ActiveMQ 等传统的消息中间件。
  • Kafka也会被用作系统中的数据总线,将其接入多个子系统,子系统会将生产者的数据发送到Kafka中保存,之后流转到目的系统中。
  • Kafka还可以用作日志收集中心,多个系统产生的日志统一收集到Kafka中,然后由数据分析平台进行统一处理。日志会被Kafka持久化到磁盘,所以同时支持离线数据处理和实时处理。

你可能感兴趣的:(Kafka 基本概念)