博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dubbo学习笔记 十二 dubbo-cluster
阅读量:2177 次
发布时间:2019-05-01

本文共 1803 字,大约阅读时间需要 6 分钟。

cluster也是从rpc分出来的,包名叫com.alibaba.dubbo.rpc.cluster

也是rpc的一部分,从官方文档中可以看出

确定cluster 类型,从directory中获取注册信息,router根据规则来过滤list<Invoker> ,然后loadBalance 做负载,抽取 invoker

Directory

根据Invocation 获取到InvokerList
public interface Directory
extends Node { /** * get service type. * * @return service type. */ Class
getInterface(); /** * list invokers. * * @return invokers */ List
> list(Invocation invocation) throws RpcException; }

Router

在Directory的list方法中,可以执行router找到合适的invokers

public interface Router extends Comparable
{ /** * get the router url. * * @return url */ URL getUrl(); /** * route. * * @param invokers * @param url refer url * @param invocation * @return routed invokers * @throws RpcException */
List
> route(List
> invokers, URL url, Invocation invocation) throws RpcException;}

Cluster

调用的时候确定试错类别

@SPI(FailoverCluster.NAME)public interface Cluster {    /**     * Merge the directory invokers to a virtual invoker.     *      * @param 
* @param directory * @return cluster invoker * @throws RpcException */ @Adaptive
Invoker
join(Directory
directory) throws RpcException;}

LoadBalance

确定下负载算法

@SPI(RandomLoadBalance.NAME)public interface LoadBalance {	/**	 * select one invoker in list.	 * 	 * @param invokers invokers.	 * @param url refer url	 * @param invocation invocation.	 * @return selected invoker.	 */    @Adaptive("loadbalance")	
Invoker
select(List
> invokers, URL url, Invocation invocation) throws RpcException;}

你可能感兴趣的文章
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>