Dubbo

105 阅读2分钟

什么是RPC

RPC是指远程过程调用,是一种进程中间的通信方式,他是一种技术思想,而不是技术规范。 它允许程序员调用另一个地址空间(通常是共享网络的另一台机器上)的过程或者函数。而不用程序员显示编码这个远程调用细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

Dubbo

dubbo 是一款高性能,轻量级的开源Java RPC 框架。

DUBBO架构

1679579799181.png

Dubbo的配置项目

启动项检查

Dubbo缺省会在启动时检查依赖的服务是否是可用的,不可用的时会抛出异常,阻止Spring初始化完成,以便于上线时能及早发现问题,默认 check = 'true' 但是如果你的spring容器是懒加载的或者是出现了循环依赖,必须有一方先启动,请关闭check <dubbo:consume check="false"/>

配置之间的优先级关系 1,方法级优先,接口级次之,全局配置再次之 2,如果级别(方法级别 接口级别 全局配置级别)一样 则消费方有限 提供方次之

Dubbo的负载均衡策略

  1. Random Loadbalance:随机,按照权重设置随机的概率(默认)
  2. RoundRobin Loadbalace:基于权重的轮询负载均衡机制
  3. LeastActivity LoadBalance :最少活跃数(按照服务器处理请求事件的长短快慢去区分是否活跃) 负载均衡机制
  4. 一致性hash

服务降级

当服务器压力过大的时候,根据实际业务情况以及流量,对一些服务和页面有策略的不处理或者换种简单的处理方式,从而释放服务器资源以保证核心交易正常运作或者高效运作

  1. 直接返回null 表示消费方对该服务的方法调用都返回null值,不发起远程调用
  2. 当消费者对该服务的方法调用失败后,再返回null,不抛出异常

Dubbo的底层逻辑

后续补充