首页 > 代码库 > Dubbo介绍
Dubbo介绍
1.Dubbo是什么?
(1).Dubbo是Alibaba开源的一个分布式服务框架(远程服务调用的分布式框架)
(2).高性能和透明化的RPC远程服务调用方案
(3).SOA服务治理方案
2.Dubbo能做什么?
(1).透明化的远程方法调用
就像调用本地方法一样的调用远程方法,只需要简单配置,没有任何API侵入。
(2).软负载均衡及容错机制
可在内网替代F5等硬件负载均衡器
(3).服务自动注册与发现
不在需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑或删除服务提供者
3.Dubbo的基本原理
Provider:暴露服务的服务提供方
Consumer:调用远程服务的服务消费方
Registry:服务注册与发现服务中心
Monitor:统计服务的调用次数和调用时间的监控中心
Container:服务运行容器
基本流程:
(1).服务提供方发布服务到服务注册中心
(2).服务消费方从服务注册中心订阅服务
(3).服务消费方调用已经注册的可用服务
4.Dubbo的基本功能 (配置)
(1).基本功能-可编程配置-暴露服务
application:指的是当前应用的名称主要用来给注册中心计算应用间依赖关系
registry:用来声明一个注册中心,id为registry的注册中心,地址是本地服务器的2181端口
protocol:指该应用用Dubbo协议在28080端口暴露服务,其他应用可以通过这个借口调用服务
service:用来声明需要暴露的服务接口,并将接口注册到id为dubbodemo的注册中心,引用了spring中名为userService的类,超时时间为3秒
(2).基本功能-可编程配置-引用服务
注:reference里面引用的接口interface是跟服务方一样的,id是要引用的接口
(3).基本功能-服务分组
当一个接口有多种实现时,可以用group区分
当一个接口实现,出现不兼容升级时,可以用版本号过滤,版本号不同的服务相互间不引用
(4).基本功能-多协议
数据序列化格式
传输数据协议
不同服务,不同协议
比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据用长连接协议
同意服务,多协议暴露
比如:需要与http客户端互操作
5.Dubbo高级功能-并发控制
actives:Consumer并发数限制
excutes:Provider并发数上限
connections:consumer的连接数
accepts:Provider的连接上限,短链接是连接上限,长连接是启用的连接数
LeastActive LoadBalance:调用并发数量最小分Provider(从Consumer端并发),调节Provider间并发
资源:
- 源码:https://github.com/alibaba/dubbo
- 下载:http://repo1.maven.org/maven2/com/alibaba/dubbo
Dubbo介绍