分布式是什么:
为了解决单机处理能力有限,和稳定性可用性的问题,提出了分布式系统的概念。
对于zookeeper来说,分布式系统可以定义为同时跨越多个物理机,独立运行的多个软件组件组成的系统。
分布式系统的进程通信有两种,一个是直接通过网络进行信息交换,另一种是通过读写共享的存储来实现。zookeeper就是使用的共享存储模型来实现应用间的协作和同步;但是在共享存储本身也需要进程和存储间进行网络通信,所以zookeeper也需要高可用的网络通信。
zookeeper在分布式中起什么作用:
zookeeper可以在分布式系统中协作多个任务,例如主从工作模式,当从节点处于空闲状态时,会通知主节点,主节点会分配任务给从节点。但实际上很多进程都在竞争主节点,锁着这时候就用到了互斥锁,在选主的时候就是获取锁的时候。
应用场景:
Kafka:zookeeper负责kafka的broker的leader选举管理;
数据仓库:zookeeper用于选举一个数据集群中的主节点,以便跟踪可用的服务器并保存集群的元数据。
负载均衡方式:
Nginx:是反向代理服务器,用于负载均衡服务器;
Nginx的负载均衡配置表简单,把多个web server配置到nginx中,用户访问Nginx时,就会自动被分配到某个web server。
Zookeeper:是分布式协调服务框架,也会用于负载均衡;
Zookeeper负载均衡实现思路:把Zookeeper作为一个服务注册中心,在其中登记每个服务,每台服务器知道自己属于哪个服务,在服务器启动时,自己向所属服务进行登记(呈现出一个树形结构)