转自Dubbo官网:DUBBO
1.启动检查
1. 服务启动过程中验证服务提供者的可用性。
2. 验证过程出现问题,则组织整个Spring容器初始化(不让项目启动)。
如下:
解决:
@Reference有个属性check默认是true,改成false就行
建议:
dubbo官方不建议关闭启动检查,因为开启启动检查可以帮我们提前避免很多运行过程中出现的问题,可以把服务者的问题提前暴露出来,可以尽可能早的发现服务问题。
但是是技术跟着需求走,开启启动检查并不适用于所有的场景比如:线上业务可能会遇见A服务调用B服务,然后B服务启动有需要调用A服务,如果不关闭启动检查可能就会导致报错。
所以根据自己的实际情况而定。
2.负载均衡
3.多协议支持
这个protocol是什么?
协议名称,多协议支撑
. Dubbo支持多种协议
. 最常见的协议是dubbo
. RMI ,Hessian、Http、Redis、Memcached等多种协议
Dubbo协议一般建议最大数据包不超过100k,如果大小相差较大,可以换成RMI协议
4.Dubbo的结果缓存缓存
结果缓存,用于加素热门数据的访问速度,Dubbo提供申明式缓存,以减少用户加缓存的工作量
缓存类型:
lru: 基于最近最少使用原则删除多余的缓存,保持最热的数据被缓存。
threadlocal:但钱线程池缓存,比如一个页面渲染,用到很多的portal,每个portal都要去查用户的信息,通过线程池缓存,可以减少这种多余的访问。
jcache:与 JSR107集成,可以桥接各种缓存实现。(不太了解,没用过)
配置:
通过cache属性来配置
Spring :
<dubbo:reference interface="com.foo.BarService" cache="lru" />
<dubbo:reference interface="com.foo.BarService">
<dubbo:method name="findBar" cache="lru" />
</dubbo:reference>
SpringBoot:
5.并发控制
1.Dubbo可以对连接和并发数量控制
2.超出部分以错误形式返回