【ZooKeeper】缓存
服务注册、服务发现、客户端负载均衡、Offset偏移量分布式存储。架构
kafka使用zookeeper来实现动态的集群扩展,不须要更改客户端(producer和consumer)的配置。负载均衡
broker会在zookeeper注册并保持相关的元数据(topic,partition信息等)更新。分布式
Broker和Consumer都在ZooKeeper中注册,ZooKeeper保存它们的元数据。kafka
而客户端会在zookeeper上注册相关的watcher。一旦zookeeper发生变化,客户端能及时感知并做出相应调整。有Broker和Consumer发生变化时,其余Broker和Consumer都会获得通知。这样就保证了添加或去除broker时,各broker间仍能自动实现负载均衡。it
kafka是显式分布式架构,producer、broker(Kafka)和consumer均可以有多个。Kafka的做用相似于缓存,即活跃的数据和离线处理系统之间的缓存。几个基本概念:io
(1)message(消息)是通讯的基本单位,每一个producer能够向一个topic(主题)发布一些消息。若是consumer订阅了这个主题,那么新发布的消息就会广播给这些consumer。class
(2)Kafka是显式分布式的,多个producer、consumer和broker能够运行在一个大的集群上,做为一个逻辑总体对外提供服务。对于consumer,多个consumer能够组成一个group,这个message只能传输给某个group中的某一个consumer.集群