摘要: 本文将以zookeeper的3.4.6版本作为源码分析版本。主要的代码类包括QuorumPeerMain、QuorumPeer、FastLeaderElection、QuorumMaj等。 假设有a,b,c三个zookeeper服务,serverid分别是1、2、3: 1.先启动集群中的a服务,先投 阅读全文
posted @ 2016-12-12 21:38 【刘光亮】 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 下面的英文描述了String.hashCode()方法,在特定情况下,返回值为0的问题: Java offers the HashMap and Hashtable classes, which use the String.hashCode() hash function. It is very 阅读全文
posted @ 2016-12-09 22:41 【刘光亮】 阅读(3398) 评论(2) 推荐(0) 编辑
摘要: 之前本人在实际的生产环境中,使用过activemq和rabbitmq消息队列,在使用过程中出现一些难以解决的问题,本文通过产品选型、网络架构和核心特性分析了rocketmq的优势和特性。 产品选型 我们在进行中间件选型时,一般都是通过下面几点来进行产品选型的: 1.性能 2.功能支持程度 3.开发语 阅读全文
posted @ 2016-11-28 14:43 【刘光亮】 阅读(12783) 评论(2) 推荐(4) 编辑
摘要: 本章我们将分析一下consumer向注册中心注册,并获取服务端相应的信息,根据这些信息生产代理对象的过程和源码。 1.类图 上图展示了部分消费者注册及生成代理对象过程中需要使用到的类和接口,其中: spring适配涉及到的类:DubboNamespaceHandler、DubboBeanDefini 阅读全文
posted @ 2016-11-02 21:48 【刘光亮】 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: 本文将深入分析dubbo的服务发布涉及到的流程及主要类的代码。首先,我们先从类的关系图来看一下dubbo发布服务涉及到的相关类。 1.类图 上图展示了部分服务发布过程中需要使用到的类和接口,其中: spring适配涉及到的类:DubboNamespaceHandler、DubboBeanDefini 阅读全文
posted @ 2016-11-01 17:11 【刘光亮】 阅读(1912) 评论(0) 推荐(0) 编辑
摘要: 本文作为dubbo源码分析的第一章,先从总体上来分析一下dubbo的代码架构、功能及优缺点,注意,本文只分析说明开源版本提供的代码及功能。 1.dubbo的代码架构: spring适配层:常规的spring适配方法,内容包括使用dubbo.xsd文件来定义dubbo相关的元素及属性;DubboNam 阅读全文
posted @ 2016-10-27 14:04 【刘光亮】 阅读(5370) 评论(0) 推荐(0) 编辑
摘要: 本章将描述motan部分的特性并对源码进行分析。 1.requestid的维护,使用了当前时间左移20位,再和一个自增变量组合 2.限流,motan支持简单的限流,是利用filter来实现的 3.对于连续失败的client进行不可用操作 4.支持多注册中心,因此cluster的refer集合是所有注 阅读全文
posted @ 2016-09-20 00:00 【刘光亮】 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: motan提供了流量切换的功能,可以实现把一个group的流量切换到另一个group(一个或多个服务都可以)。大家可以使用tomcat部署motan的管理工具,并设置几个组,例如可以参考demo代码:motan_demo_server_commandRegistry.xml。分析源码时可以发现,流量 阅读全文
posted @ 2016-09-19 23:30 【刘光亮】 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中,我们已经发现了开关的踪影,例如cluster,motan支持多个cluster,当前的cluster因为开关关闭的情况下,就会使用下一个cluster。 1.开关相关的类和接口主要都在包com.weibo.api.motan.switcher下,类Switcher是具体的开关: 2. 阅读全文
posted @ 2016-09-19 22:47 【刘光亮】 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 之前我们分析了客户端调用服务端的源码,但是没有涉及到通讯层和序列化层,本文将之前讲过的内容做一次串联。 1.上层通过动态代理调用refer的call,每个refer又对应一个nettyclient,下面来看一下nettyclient的调用服务端操作 2.nettychannel的request操作 阅读全文
posted @ 2016-09-19 20:29 【刘光亮】 阅读(754) 评论(0) 推荐(0) 编辑