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