1、什么是dubbo
dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架, 使得应用可经过高性能的RPC实现服务的输出和输入功能, 能够和Spring框架无缝集成.html
2、为何要用dubbo
随着互联网的发展, 网站应用的规模不断扩大, 常规的垂直应用架构已没法应对, 分布式服务架构以及流动计算架构势在必行, 需一个治理系统确保架构有条不紊的演进;
前端
单一应用架构
当网站流量很小时, 只需一个应用, 将全部功能都部署在一块儿, 以减小部署节点和成本. 此时, 用于简化增删改查工做量的数据访问框架(ORM)是关键;
垂直应用架构
当访问量逐渐增大, 单一应用增长机器带来的加速度愈来愈小, 将应用拆成互不相干的几个应用, 已提高效率. 此时, 用于加速前端页面开发的Web框架(MVC)是关键;
分布式服务架构
当垂直应用愈来愈多, 应用之间交互不可避免, 将核心业务抽取出来, 做为独立的服务, 逐渐造成稳定的服务中心, 使前端应用能更快速的响应多变的市场需求. 此时, 用于提升业务复用及整合的分布式服务框架(RPC)是关键;
流动计算架构
当服务愈来愈多, 容量的评估, 小服务资源的浪费等问题逐渐显现, 此时须要增长一个调度中心基于访问压力实时管理集群容量, 提升集群使用率. 此时, 用于提升机器使用率的资源调度中心和治理中心(SOA)是关键;java
3、dubbo工做原理
git
节点角色说明: github
调用关系说明:
0.服务容器负责启动, 加载, 运行服务提供者;
1.服务提供者在启动时, 向注册中心注册本身提供的服务;
2.服务消费者在启动时, 向注册中心订阅本身所需的服务;
3.注册中心返回服务提供者地址列表给消费者, 若是有变动, 注册中心将基于长链接推送变动消息给消费者;
4.服务消费者, 从提供者地址列表中, 基于软负载均衡算法, 选一台提供者进行调用, 若是调用失败, 再选另外一台调用;
5.服务消费者和提供者, 在内存中累计调用次数和调用时间, 定时每分钟发送一次统计数据到监控中心;算法
4、dubbo使用方法
dubbo官网 http://dubbo.apache.org/zh-cn/index.html , 里面有一些文档及资源;
1.打开 https://github.com/apache/incubator-dubbo/releases , 下载dubbo2.6.0版本进行下载(此处使用2.6.0版本进行示例)
2.解压后, 找到dubbo-demo, 导入至eclipse;
apache
3.导入后以下所示, 从名字能够看出:
dubbo-demo-api属于接口, 内部也只有一个接口类;
dubbo-demo-provider属于服务提供者, 也就是被调用方;
dubbo-demo-consumer属于服务调用者, 也就是调用方;
api
4.下载zookeeper, 用做注册中心, 进入bin目录执行zkServer.cmd便可(我这里使用zookeeper版本为3.3.6);
5.调整服务提供者与服务消费者zookeeper注册中心地址;
服务提供者:
浏览器
服务消费者:
tomcat
6.分别启动服务提供者(Provider.java)与消费者(Consumer)便可;
7.dubbo还提供一个管理控制台, 是一个war包, 也能够进入dubbo-admin自行打包, 这里我将war包分享出来, 连接:https://pan.baidu.com/s/1nLl2RbLMK2f_Pg90mE4h1w 提取码:fqbq
8.将war包解压到tomcat的ROOT目录中(需提早将ROOT中的文件清除), 而后启动tomcat;
9.浏览器中输入地址打开, 弹出登陆窗口, 用户名密码都为root, 进入控制台后, 咱们能够清晰的看到服务统计数量, 而且能够查看各个服务的状态;