如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他

最近跟我妈在聊天,我问我妈,你觉得找个程序员谈恋爱怎么样,我妈说,会修电脑吗?

我妈是不是对程序员有什么误解,不过,以前我好像也是这么想的,而且还不止我一个妹子这么想...

好吧,说正事专用脸...(严肃)

如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他

dubbo调用模块核心功能是发起一个远程方法的调用并顺利拿到返回结果,其体系组成如下:

1. 透明代理:通过动态代理技术,屏蔽远程调用细节以提高编程友好性。

2. 负载均衡:当有多个提供者是,如何选择哪个进行调用的负载算法。

3. 容错机制:当服务调用失败时采取的策略

4. 调用方式:支持同步调用、异步调用

5. 结果获取:指同步等待结果返回,还是异步通过回调通知获取结果。

如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他

负载均衡

Dubbo 目前官方支持以下负载均衡策略:

1. 随机(random):按权重设置随机概率。此为默认算法.

2. 轮循 (roundrobin):按公约后的权重设置轮循比率。

3. 最少活跃调用数(leastactive):相同活跃数的随机,活跃数指调用前后计数差。

4. 一致性Hash(consistenthash ):相同的参数总是发到同一台机器

如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他

设置方式支持如下四种方式设置,优先级由低至高

配置loadbalance

配置需要hash 的参数与虚拟节点数

发起远程调用

一至性hash 算法详解:

如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他

容错

Dubbo 官方目前支持以下容错策略:

1. 失败自动切换:调用失败后基于retries=“2” 属性重试其它服务器

2. 快速失败:快速失败,只发起一次调用,失败立即报错。

3. 勿略失败:失败后勿略,不抛出异常给客户端。

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

5. 并行调用: 只要一个成功即返回,并行调用指定数量机器,可通过 forks="2" 来设置最大并行数。

6. 广播调用:广播调用所有提供者,逐个调用,任意一台报错则报错

设置方式支持如下两种方式设置,优先级由低至高

异步调用

异步调用是指发起远程调用之后获取结果的方式。

1. 同步等待结果返回

2. 异步等待结果返回

3. 不需要返回结果

你确定不关注我,不给我一个监督你热爱学习的机会嘛?为了更文,我居然开始掉头发了,我是不是要秃顶了.....

如何简单粗暴的搞定dubbo调用模块?一般人我不告诉他


分享到:


相關文章: