zookeeper:

分布式应用程序协调服务;为了使各个子系统功能正常为用户提供统一的服务,必须需要一种机制来进行协

调–>>这就是ZooKeeper。

zookeeper包含多个zk进程:–>>其中包含一个leader,多个follower进程

–>>所以,zookpeer是由一个leader和多个follower组成的集群

特性

全局数据一致性:每个数据server都有一个数据副本,无论client连接到哪一个server,数据都是一致的

分布式读写,更新请求转发由leader实施

更新请求顺序进行,来自同一个client的更新请求按其发放顺序依次执行

一次性:更新一次数据要么成功要么失败

实时性:在一定时间范围内,client能读到最新数据

运行流程

leader中数据较多,向follower传输数据

模型图解

1.分布式地分布在一组机器中

2.所有节点存储整份数据(在内存也在硬盘)

3.在启动时候选举出Leader

4.Leader会做原子广播到所有其他节

5.严格的顺序访问控制

kafka对应的zookeeper版本 kafka与zookeeper关系_kafka对应的zookeeper版本


文件zoo_sample.cfg–>>zoo.cfg中的参数解析:

kafka对应的zookeeper版本 kafka与zookeeper关系_消息系统_02


参数注解:server.id=IP:port1:port2

id带指服务host,其中/tem/zookeeper/myid文件中的数字就是代表id,通过id找到对应ip地址

port1:代表leader向follwer传输数据的端口

port2:代表leader的端口

kafka:

是一个分布式、分区的、多副本的、多订阅者,高吞吐量的分布式发布订阅消息系统,可以处理所有大量动作流数据(性能较好),基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,

应用场景:日志收集系统和消息系统

消息系统:负责将数据从一个应用传递到另一应用(应用只需要关注数据)

kafka对应的zookeeper版本 kafka与zookeeper关系_数据_03


小编认为的一个小流程,若不准确的地方请读者及时提出,以方便他人不要误解

kafka对应的zookeeper版本 kafka与zookeeper关系_zookeeper_04