主要介绍Dubbo的产生背景和需要解决的问题
二、产生背景
随着大数据量、高并发的互联网应用越来越多,单机系统已经无法满足系统的需要。通过SOA搭建一个分布式服务框架,用于分担压力,提高处理能力,这些都是Dubbo需要解决的问题,Dubbo可以认为是一个SOA的解决方案,是阿里巴巴贡献的开源框架,由Java语言编写
三、看图说话
![35158-20161025144403250-88676786.jpg](https://images2015.cnblogs.com/blog/35158/201610/35158-20161025144403250-88676786.jpg)
节点角色说明:
- Provider: 暴露服务的服务提供方
- Consumer: 调用远程服务的服务消费方
- Registry: 服务注册与发现的注册中心(一般用ZooKeeper实现)
- Monitor: 统计服务的调用次数和调用时间的监控中心(Dubbo提供了单独的Dubbo Monitor程序)
- : 服务运行容器
a) 直接使用ApplicationContext启动Dubbo服务
b) 使用Dubbo提供的main(com.alibaba.dubbo.container.Main.main(null))方法入口启动Dubbo服务,可打成jar包运行(推荐)
c) 使用tomcat/jetty等作为Dubbo服务的容器(不推荐,原因是tomcat和dubbo都需要管理)
调用关系说明:
- 0服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡,选一台提供者进行调用,如果调用失败,
- 再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
四、Dubbo提供的各个组件
- 管理控制台:Dubbo-Admina) 功能:查看Dubbo的所有服务提供者和消费者、调整服务的负载权重等b) 源码地址:c) war包,可以直接在tomcat中部署,请从群中下载
- 监控中心:Dubbo-Monitor
a) 功能:监控服务的调用次数,调用时间等信息,将服务下线或上线等b) 源码地址:c) war包,可以直接在tomcat中部署,请从群中下载
五、Dubbo生态组件
- 注册中心:ZooKeeper a) 版本:3.4.6 b) 在线文档: c) 请从群中下载
- ZooKeeper信息查看:ZooInspector,请从群中下载