简介
Kafka是一个分布式的流处理平台。一个流处理平台通常有以下特征:
- 发布和订阅消息流(类似于消息队列或者企业级的消息系统)
- 以容错的、持久的方式存储消息流
- 当消息流到来的时候,处理消息
Kafka是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,其主要特点为:
- 以**时间复杂度为O(1)**的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能
- 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输
- 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输
- 同时支持离线数据处理和实时数据处理
应用场景
- 数据推送
- 作为大缓冲区使用
- 日志收集(scribe或者nginx)
- 服务中间件
工作原理
Kafka是一个分布式系统,由通过高性能TCP网络协议进行通信的服务器和客户端组成。它可以部署在内部和云环境中的裸机硬件、虚拟机和容器上。
服务器:Kafka作为一个或多个服务器的集群运行,这些服务器可以跨越多个数据中心或云区域。其中一些服务器形成存储层,称为代理。其他服务器运行Kafka Connect以将数据作为事件流持