dubbo常见问题归纳
- dubbo的可选的配置方式?
官网上给出了四种方式分别是xml配置、属性配置、注解配置、API配置
xml配置:通过使用xml配置文件的方式
通过加载classPath路径下的dubbo.properties文件
使用注解的配置方式
api的方式(通过@PropertySource加载指定配置文件)
- 配置文件的覆盖关系
- 细大于粗
- 消大于提
细粒度的配置优先级大于粗粒度的优先级,例如方法级优先级大于接口级,接口级大于全局配置
消费者端的配置优先级大于生产者
- dubbo的分层设计
大体上分为三个大层: - Bussiness
- RPC
- Remoting
3.1 Bussiness
- service 业务层
service接口层,提供给服务提供者和消费者进行实现
3.2 RPC
config配置层,加载dubbo的配置信息
proxy代理层,对bussiness层生成代理对象
registry注册层,负责服务的注册和发现
cluster路由层,对同一个服务多个实例进行路由
monitor监控层,可以对rpc接口的调用次数和时间进行监控
protocol远程调用层,用于封装RPC调用
3.3 Remoting
exchange信息交换层,封装请求的响应模式,异步转同步
transport网络传输层,抽象出网络通信方案
seriallze序列化层
- dubbo的调用流程
- Provider
- 第0步: 启动service服务
- 第1步: 将服务注册到注册中心
- Consumer
- 第2步: 向注册中心获取服务列表并保持连接以获取最新的服务列表(还会将服务列表保存在本地)
- invoke
- 第3步: Consumer通过服务端负载均衡后向Provider发起远程异步调用
- 第4步: provide接受到请求后执行,并且将执行结果返回
- monitor
- 第5步: provide/consumer会将调用信息发送给monitor进行统计
- dubbo调用链?