Kafka 是一个支持分区(partition)、多副本(replica)、基于ZooKeeper 的协调的分布式消息系统,它的最大的特点就是可以实时地处理大量数据,以满足各种需求场景。比如基于Hadoop 的批处理系统、低延迟的实时系统、Storm/Spark 流式处理引擎、Web/Nginx 日志、访问日志、消息服务等。
Kafka 的特点如下。
可扩展:Kafka 支持热扩展,可以动态增加节点及存储单元。
持久性、可靠性:消息不经过内存持久化到本地磁盘,并且支持数据备份,防止数据丢失。可以由用户来指定数据备份的份数,管理灵活。
容错性:允许集群中节点失败,会有其他节点代替当前节点进行数据传输。
高并发:Kafka 内部使用了零拷贝技术,就是数据在节点之间保存,传输时不需要经过用户空间,可以直接通过节点的网卡将数据传输。因此,Kafka 支持高并发,支持上千个客户端同时读写,可以达到百兆每秒的传输量。(www.xing528.com)
完整的Kafka 集群节点划分应当包含以下两个部分:
1.Broker
Broker 是组成Kafka 集群的节点,一个Kafka 集群可以由多个Broker 节点组成。Kafka 是消费订阅模式,Kafka 数据的源头叫作Kafka 的生产者,消费Kafka 的一端叫作Kafka 的消费者。Broker 负责消息的读写请求,保存来自生产者的数据和为消费者提供消息,除此之外,Broker 还负责消息副本的保存。
2.ZooKeeper
ZooKeeper 是分布式协调系统。在KafKa 集群中,ZooKeeper 负责保存Kafka 集群中的元数据信息,这些元数据包括Broker 节点信息、Topic 信息、Partition 信息及各种配置状态。在Kafka 0.8 版本之前,ZooKeeper 还负责保存管理消费者的消费消息位置(offset)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。