dubbo
liangdu_Zuker
这个作者很懒,什么都没留下…
展开
-
Dubbo的9种集群容错方案的总结
容错机制的研究本文最好结合 https://github.com/apache/dubbo 源码理解。找到 AbstractClusterInvoker 的所有子类,他们的集群容错功能都在 AbstractClusterInvoker.doInvoker()实现。在此之前最好理解:[集群 cluster]https://zh.wikipedia.org/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%9B%86%E7%BE%A4[容错 ]https://zh.wikip原创 2020-06-23 20:54:00 · 1166 阅读 · 0 评论 -
dubbokeeper-master结构图
原创 2016-10-12 19:42:32 · 1215 阅读 · 0 评论 -
dubbo扩展spring scheme 暴露服务提供者的源码跟踪演绎
我在想他暴露肯定要依赖自己的封装··因为spring只负责创建(而且不是懒创建) 第一个猜想得到了验证既然他依赖于自己封装的类,那直接看他的导入·····(我发现他们的导入还是很规范的) 看到他封装的serviceBean··绝对可疑····然后就在DubboBeanDefinitionParser里面find一下发现这个引用只被调用了2处··力证我的猜想 然后接下来就越来越清晰了····很容原创 2016-11-23 14:52:00 · 703 阅读 · 0 评论 -
dubbo服务提供者的Maven构建流程
整个流程分为【打包流程】和【启动流程】【打包流程】:==========================================================================采用cd/d %~dp0mvnassembly:assembly进行编译打包。==============================原创 2016-11-23 15:00:52 · 1015 阅读 · 0 评论 -
dubbo的内核源码UML(容器启动以及Spring的shceme扩展)
1.通用参数交由System.getPropertys();管理2.利用class.forName()还有注解技术 ,模仿SPI,实现自己的ExtensionLoader,再利用反射获取扩展类的实体对象。3.如果是用spring容器的话,使用的spring标签扩展机制(OSGi),去启动RPC,个人认为先分析jetty机制。===整个项目主要是:1.原创 2016-11-23 15:08:45 · 701 阅读 · 0 评论 -
构造函数线程安全-即dubbo的extensionLoader存在线程安全问题
构造函数是静态的,而且不管是否为private还是public修饰,他都是静态的。《JAVA并发编程实战》有提过:“”如果构造方法暴露了this指针,就会存在线程安全问题“”其意思是,构造方法是静态的,非线程安全的,如果在这个非线程安全的方法中读写对象的成员,比如初始化对象,就会存在线程安全问题。比如:class Holder {private int n;public原创 2017-01-03 17:33:05 · 1212 阅读 · 0 评论 -
怎么将dubbo的SPI移植到开源项目中,附dubbo的ExtensionLoader<T> 的实现原理分析
Dubbo的扩展点加载从JDK标准的SPI(Service Provider Interface)扩展点发现机制加强而来。Dubbo改进了JDK标准的SPI的以下问题:JDK标准的SPI会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。如果扩展点加载失败,连扩展点的名称都拿不到了。比如:JDK标准的ScriptEngine,通过getNam原创 2016-12-30 14:29:23 · 870 阅读 · 0 评论 -
dubbo服务提供者注册后为什么要有心跳机制
因为注册中心的会话是有生命限制的,会话结束生命就要终止,为了防止因为会话闲置太久被杀了,所以必须要保持会话。怎么保持呢?我在dubbo的源码里面一直找不到dubbo注册session失效的事件的源码,所以我猜测,这个事件应该和znode做了捆绑,因为创建会话的时候生成了znode。我查看了zookeeper,果然是有提供这样的机制。 zk有一种Z原创 2017-01-06 14:37:35 · 7465 阅读 · 1 评论