官网
1)服务容器负责启动,加载,运行服务提供者。
2)服务提供者在启动时,向注册中心注册自己提供的服务。
3)服务消费者在启动时,向注册中心订阅自己所需的服务。
4)注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5)服务消费者从提供者地址列表中,基于软负载均衡算法选一台提供者进行调用,如果调用失败再选另一台调用。
6)服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
核心部件:
- Remoting: 网络通信框架,实现了 sync over async(异步中同步) 和 request-response 消息机制.
- RPC: 远程过程调用,支持负载均衡、容灾和集群功能
- Registry: 服务目录框架用于服务的注册和服务事件发布和订阅
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器
Dubbo 和 Spring Cloud 有什么区别?
Dubbo | cloud | |
---|---|---|
通信方式 | RPC(九种协议)利用存根) | http restFul |
组成部分 | 注册中心zk、服务监控dubbo-monitor | spring cloud的组件非常多 |
dubbo协议
dubbo协议 默认使用 Hessian2 序列化。(说明:Hessian2 是阿里在 Hessian 基础上进行的二次开发,起名为Hessian2 )
rmi协议 默认为 java 原生序列化;
http 协议 默认为 为 json ;
hessian 协议,默认是 hessian 序列化;
webservice 协议,默认是 soap 文本序列化 ;
总结
面向接口
的远程方法调用负载均衡
自动注册和发现