dubbo服务引用-如何实现SOA的服务降级

带着问题进入,

为什么需要服务降级?

当使用某门新技术的时候,需要考虑解决什么问题,通过之前的积累可以知道是将某些业务暂时停掉,避开高峰期。把一些边缘化不再当前高并发时使用的业务关掉。

怎么做服务降级

dubbo中服务降级分成两个:屏蔽(mock=force)、容错(mock=fail)mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

普通情况是直接调用,容错的情况是调用失败后,返回一个设置的值.而屏蔽就很暴力了,直接连调用都不调用,就直接返回一个之前设置的值.

遇到过什么坑

问题:dubbo在集群容错算法中的轮询就有个坑,需要调节当前时间解决​​​​​​​

问题:在监控平台删除或者启用禁用后,可能出现多条,

解决:清除zookeeper上的节点信息

原理:能动态改变接口的一些默认设置?清除了zookeeper节点,监控平台上的一些配置信息就消失了,很明显,他这个原理就是改变注册在zookeeper上的节点信息.从而zookeeper通知重新生成invoker

插播:

在java中,很多人都不知道&与&&,|与||的区别。

&,&&:(与,短路与):一样的地方就是二者执行最后的结果是一样的,但是执行的过程有区别,

对于&:无论&左边是否为false,他都会继续检验右边的boolean值。

对于&&:只要检测到左边Boolean值为false时,就会直接判断结果,不会在检验右边的值(因为"与"有一个false最后结果就是false了)

所以&&的执行效率更高,所以一般都是使用&&.

|与||之间也是同样的道理,|:无论左边是否为ture,都会检验右边 ,||:则不会。||  的执行效率会更高

猜你喜欢

转载自blog.csdn.net/z15732621582/article/details/81068752