首页
学习
活动
专区
工具
TVP
发布

wannshan(javaer,RPC)

专栏作者
44
文章
63843
阅读量
29
订阅数
dubbo集群容错策略的代码分析3
接上篇 https://cloud.tencent.com/developer/article/1109591 dubbo 版本2.5.3 通过代码可以看到failback,failover,failsafe,forking,failfast都通过了父类的select方法选择服务提供者(invoker) 这个方法里,也包含有dubbo处理集群的机制,包括使用负载均衡的策略。通知可以看到available和broadcast方案目前没用到负载均衡策略,先看先看select方法 /** * 使用lo
技术蓝海
2018-04-26
9400
dubbo负载均衡代码分析2(一致性hash策略)
接上篇 https://cloud.tencent.com/developer/article/1109586 说 这篇说dubbo一致性hash负载均衡策略。要先大致了解下,什么是一直性hash算法。 一致性hash算法最早是用来解决,分布式缓存在有节点变动(新增后者删除)后,节点负载不均衡问题的。 而用一致性hash算法,就是为了达到,当集群中有节点加入或者节点删除时,尽量把负载的变化(加负,减负)均摊到每一个节点。 而没有接点变化时,一直性hash本身就是基本均衡(看hash函数)的负载策略。
技术蓝海
2018-04-26
1.3K0
dubbo负载均衡代码分析1(leastactive策略)
接上篇 https://cloud.tencent.com/developer/article/1109584 既然有集群容错,自然会有负载均衡。dubbo通过spi默认实现了4种lb策略 分别是 权重随机(random),实现类RandomLoadBalance 权重轮询(roundrobin),实现类RoundRobinLoadBalance 最少活跃(leastactive)负载策略,实现类LeastActiveLoadBalance 一致性hash(consistenthash)实现类Co
技术蓝海
2018-04-26
8590
dubbo负载均衡代码分析3(加权轮询策略)
接上篇 https://cloud.tencent.com/developer/article/1109577 加权轮询,我第一次没理解,个人觉得不好理解。于是先仿照源码抽象出逻辑模型,代码如下: public static void main(String[] args) { //存储调用的方法和总的调用次数的map final ConcurrentMap<String, AtomicInteger> sequences = new ConcurrentHashM
技术蓝海
2018-04-26
1.1K0
dubbo集群容错策略的代码分析2
接上篇 https://cloud.tencent.com/developer/article/1109572 dubbo版本2.5.3 dubbo本身集群容错策略有7种。都实现了Cluster接口(
技术蓝海
2018-04-26
1.9K0
dubbo路由代码分析4(script路由器file路由器)
接上篇 https://cloud.tencent.com/developer/article/1109564 这篇分析下,script类型和file类型路由器。 目前,script类型和file路由规则,还不能通过dubbo的admin管理页面添加。可以通过java api添加。具体看这里 先说,script路由器,它由ScriptRouterFactory路由工厂创建如下: public class ScriptRouterFactory implements RouterFactory {
技术蓝海
2018-04-26
1.6K0
dubbo路由代码分析3(condition路由器)
这篇说说,dubbo condition类型路由器的路由解析和执行过程 由 https://cloud.tencent.com/developer/article/1109552 这篇我们可以看到 condition类型路由器是由condition路由工厂获取,源码如下 public class ConditionRouterFactory implements RouterFactory { public static final String NAME = "condition";
技术蓝海
2018-04-26
1.4K0
ReentrantLock 重入锁,重入体会有多深?
以前写过这个 https://my.oschina.net/u/146130/blog/843445 今天看CyclicBarrier源码,核心代码 这一串 /** * Main barrier code, covering the various policies. */ private int dowait(boolean timed, long nanos) throws InterruptedException, BrokenBarrierExceptio
技术蓝海
2018-04-26
5970
dubbo基于spring运行原理解析
dubbo是基于spring构建和运行的,兼容spring配置。这篇说说dubbo基于spring的过程。 dubbo首先利用了从spring2.0开始的一个特性,Extensible XML authoring,扩展spring了标签功能。 关于如何利用spring扩展自己的标签,可以参考下官方介绍 https://docs.spring.io/spring/docs/3.2.18.RELEASE/spring-framework-reference/htmlsingle/#extensible-xml 根据文档的说法,需要如下4步: 1,编写xml,描述需要扩展的标签的配置属性,dubbo实现放在jar包META-INF/dubbo.xsd文件里 同时通过编写META-INF/spring.handlers文件,提供给spring,内容如下 http\://code.alibabatech.com/schema/dubbo/dubbo.xsd=META-INF/dubbo.xsd xsd文件也很好编写阅读,里面有继承和嵌套的概念。 2,写一个NamespaceHandler接口实现类,dubbo的实现类是DubboNamespaceHandler 同时通过编写META-INF/spring.schemas文件,提供给spring,内容如下: http\://code.alibabatech.com/schema/dubbo=com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler 3,编写一个(或者多个)BeanDefinitionParser实现类,用来解析扩展的元素,dubbo实现类是DubboBeanDefinitionParser, 这个类也是真正的需要自己处理的代码所在。 4,把以上组件注册给spirng,这个dubbo其实在DubboNamespaceHandler类里。
技术蓝海
2018-04-26
1.9K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档