Dubbo:
是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架
提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案
RPC:Remote Procedure Call 远程过程调用。
Zookeeper:
是一个开源的分布式的,为分布式应用提供协调服务的Apache项目
主要功能:
1.配置管理
2.分布式锁
3.集群管理
工作机制:
设计模式角度理解:是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理大家都关心的
数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上
注册的那些观察者做出响应的反应。
Zookeeper = 文件系统+通知机制
特点:
一个领导者,多个跟随者组成的集群。
集群中只要有半数以上的节点存活,Zookeeper集群就能正常服务。
全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都一致
更新请求顺序进行,来自同一个Client的更新请求按其发送顺序依次进行。
数据更新原子性
数据结构:
Zookeeper数据模型的结构,整体上可以看作是一颗树,每个节点称作一个ZNode,每个ZNode
默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。
应用场景:
提供的服务包括:
统一命名服务:分布式环境下,对应用/服务进行统一命名,便于识别
统一配置管理:分布式环境下,配置文件同步(一般要求一个集群中,所有节点的配置信息是一致的。对配置文件
修改后,希望能快速同步到各个节点上)
统一集群管理:分布式环境下,实时掌握每个节点的状态是必要的。
服务器动态上下线:客户端能实时洞察到服务器上下线的变化