Dubbo SPI 的实现原理 发表于 2019-08-19 | 分类于 Dubbo Dubbo 的扩展点加载从 JDK 标准的 SPI 扩展点发展而来;相比于 JDK 的 SPI,Dubbo 的扩展点改进了以下几个问题(引用自 Dubbo 官网): JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源 如果扩展点加载失 ... 阅读全文 »
RocketMQ namesrv 实现 发表于 2019-05-26 | 分类于 RocketMQ 1. 启动流程nameSrv 启动的时候首先会创建 NamesrvController,创建 NamesrvController 的时候会解析配置参数填充 NamesrvConfig,解析配置参数过程如下: 设置系统参数 rocketmq.remoting.version 解析系统启动参数,如果启 ... 阅读全文 »
Dubbo stub (Dubbo 本地存根) 发表于 2019-02-16 | 分类于 Dubbo Dubbo 本地存根的实现 根据 Dubbo 官网的介绍 远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,比如:做 ThreadLocal 缓存,提前验证参数,调用失败后伪造容错数据等等,此时就需要在 API 中带上 Stub,客户端生成 Proxy ... 阅读全文 »
java 并发之AQS 发表于 2019-02-16 | 分类于 java 并发 AbstractQueuedSynchronizer AbstractQueuedSynchronizer 类继承自 AbstractOwnableSynchronizer,AbstractOwnableSynchronizer 主要维护了 exclusiveOwnerThread (独占模式的线程 ... 阅读全文 »