其实说到Dubbo和zookeeper。那么就得先从分布式系统的演变过程来说。在过去,集中式应用比较广泛。那么为什么现在都推崇于开发分布式应用系统?所谓集中式系统就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心 节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。那么问题来了,当这个中心节点出现问题了,那么我们的系统还能正常运行么,答案是否定的。而且随着服务越来越多,那么我们对URL的配置管理也变得越来困难。那么在对新功能的增加,他们之间依赖关系也变得越来越复杂。而且还有一个最为致命的一个问题是,当高并发的数据进行访问的时候,是无法去解决该如何正确的添加服务器数目。
那么针对Dubbo和zookeeper就能够完美的解决集中式应用的缺点。
Dubbo的认识:
dubbo是一个阿里巴巴开发的开源分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案.
RPC:远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务
RPC协议的底层原理:对象的序列化、反序列化以及序列化后数据的传输。
Dubbo的执行流程:
1.Container代表服务运行的容器
2.Providerd代表服务提供方
3.Consumer代表服务消费方
4.Registry代表服务的注册和发现的注册中心
5.Monitor代表统计服务的调用次调和调用时间的监控中心
流程:
1.服务器容器负责启动,加载,运行服务提供者
2.服务器启动的时候,向注册中心注册自己提供的服务
3.服务消费者在启动的时候,想注册中心订阅自己所需要的服务
4.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
5.消费者从提供者地址列表中按照负载均衡的算法选择出一台提供者进行条用,假如调用失败,会选择另外一台
6.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据给监控中心。
注册中心的作用:
1服务端服务的注册和客户端服务的发现 2、提高系统的可用性 3、提高系统的可伸缩性 4、集中管理服务 ;
常见的注册中心:zookeeper,Redis
监控中心的作用:
监控中心可以查看当前数据的并发量,我们根据对应的数据流量来对我们的服务器进行扩展。