dubbo的各种cluster的策略

2019-02-28  本文已影响0人  悟空嘿

dubbo中的cluster和他们对应的name

mock=com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterWrapper

failover=com.alibaba.dubbo.rpc.cluster.support.FailoverCluster

failfast=com.alibaba.dubbo.rpc.cluster.support.FailfastCluster

failsafe=com.alibaba.dubbo.rpc.cluster.support.FailsafeCluster

failback=com.alibaba.dubbo.rpc.cluster.support.FailbackCluster

forking=com.alibaba.dubbo.rpc.cluster.support.ForkingCluster

available=com.alibaba.dubbo.rpc.cluster.support.AvailableCluster

mergeable=com.alibaba.dubbo.rpc.cluster.support.MergeableCluster

broadcast=com.alibaba.dubbo.rpc.cluster.support.BroadcastCluster

1.MergeableCluster聚合集群,将集群中的调用结果聚合起来返回结果。比如菜单服务,接口一样,但有多种实现,用group区分,现在消费方需从每种group中调用一次返回结果,合并结果返回,这样就可以实现聚合菜单项;

2.AvailableCluster源码的这个写法是比较优雅的,遍历所有的Invokers判断invoker.isAvalible,只要一个有为true直接调用返回,否则就抛出异常.

3.ForkingCluster并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。

4.FailfastCluster快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。

5.FailoverCluster dubbo里面容错方案的缺省值.失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)

6.FailbackCluster 失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。

7.FailsafeCluster 失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。

上一篇 下一篇

猜你喜欢

热点阅读