Apache Kafka 介绍
一、Kafka是什么
Apache Kafka是一种分布式的消息发布-订阅系统,而且是一种可以处理大量数据且能点对点传输消息的鲁棒的队列。Kafka适合线下和线上的消息消费。Kafka的消息会被持久化在磁盘并在集群中被复制多份备份防止数据丢失。Kafka必须部署在Zookeeper同步服务之上。Kafka可以和Apache Storm和Spark很好的结合,应用于实时数据流分析场景中。
二、优点
1、可靠性:Kafka是分布式的、分区(partiioned)、数据备份(replicated)、容错性
2、可扩展性:Kafka消息系统不用停掉其他机器就可以横向扩展
3、持久性:Kafka使用了“Distributed commit log”,使其可以将消息很快的持久化在磁盘,因此它是持久的
4、性能:Kafka拥有在发布-订阅上具有高吞吐量的特性;即使有数TB的数据量,它依旧保持稳定的性能
5、小结:Kafka速度快、零数据丢失、保证零停机时间
三、使用场景
1、度量:被用作数据运行监控;涉及从多个分布式应用聚合统计特性
2、日志分析系统
3、数据流处理
四、Need for Kafka
Kafka提供低延时的消息传输,且为机器的故障提供了容错性的保障。它拥有处理大量不同消费者consumer的能力。Kafka速度非常快,每秒可写入两百万次。Kafka持久化数据到磁盘,这意味着所有写操作都会缓存在内存中。这使得其从缓存中传输数据到socket非常高效。