1.Dubbo是什么?能做什么?
Dubbo是阿里巴巴开源的基于Java的高性能RPC分布式服务框架,现已成为Apache基金会孵化项目,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案
简单来说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的请求,本质上是个远程服务调用的分布式框架
其核心部分包含:
- 远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及'请求-响应'模式的信息交换方式,透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需要简单配置,没有任何API侵入。
- 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持,可在内网替代F5等硬件负载均衡器,降低成本,减少单点
- 自动发现:基于注册中心目录服务,服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者
2.Dubbo的工作流程
- 在提供者服务启动时,自动像注册中心注册内容,注册的内容包括IP、端口、接口列表(接口类、方法)、版本、Provider的协议
- 当消费者启动时,自动向注册中心获取到已注册的服务的信息
- 当提供者的信息发送变化时,由注册中心向消费者推送通知
- 消费者调用提供者的方法(必须是同步请求,因为需要接收调用方法的结果)
- 每个2分钟,消费者和提供者自动向监控中心发送访问次数,监控中心进行统计