Canal、Kafka、HDFS,学习过的这些技术都用了ZooKeeper,元数据管理,Master选举
ZooKeeper,他主要是提供哪些功能,满足哪些需求,使用在哪些场景下,最后一句话总结,ZooKeeper到底是为什么而生的,定位是什么?
三类系统
第一类:分布式Java业务系统,分布式电商平台,大部分的Java开发的互联网平台,或者是传统架构系统,都是分布式Java业务系统,Dubbo、Spring Cloud把系统拆分成很多的服务或者是子系统,大家协调工作,完成最终的功能
ZooKeeper,用的比较少,分布式锁的功能,而且很多人会选择用Redis分布式锁
第二类:开源的分布式系统
Dubbo,HBase,HDFS,Kafka,Canal,Storm,Solr
分布式集群的集中式元数据存储、Master选举实现HA架构、分布式协调和通知
Dubbo:ZooKeeper作为注册中心,分布式集群的集中式元数据存储
HBase:分布式集群的集中式元数据存储
HDFS:Master选举实现HA架构
Kafka:分布式集群的集中式元数据存储,分布式协调和通知
Canal:分布式集群的集中式元数据存储,Master选举实现HA架构
第三类:自研的分布式系统
HDFS,面向的超大文件,切割成一个一个的小块儿,分布式存储在一个大的集群里
分布式海量小文件系统:NameNode的HA架构,仿照HDFS的NameNode的HA架构,做主备两个NameNode,进行数据同步,然后自动基于zk进行热切换
在很多,如果你自己研发类似的一些分布式系统,都可以考虑,你是否需要一个地方集中式存储分布式集群的元数据?是否需要一个东西辅助你进行Master选举实现HA架构?进行分布式协调通知?
如果你在自研分布式系统的时候,有类似的需求,那么就可以考虑引入ZooKeeper来满足你的需求