随笔分类 - dubbo
dubbo源码学习笔记
摘要:dubbo的路由规则,是基于invoker集合进行筛选,过滤出可用的invoker集合用于后续的执行。 网关黑白名单场景如下所示: 黑白名单的数据来源一般分两类,一类是静态内置,如: 来自某个网段的请求加入黑名单 来自预设的指定IP列表的请求加入黑名单 第二类是动态列表,比如来自flink按时间区间
阅读全文
摘要:dubbo的扩展机制比较多,有@Activate,@Adaptive,@SPI,Wrapper等方式扩展功能。 每一种方式的适用场景是不太一样的,在此分别予以解释。 @Activate 一般用于过程中动态装载,根据group,value与order的值动态组装一组实例为调用过程赋能。其通过Exten
阅读全文
摘要:开源框架中的“轮子”往往能带来让人惊艳的设计,在此,尝试总结轮子设计适合的场景。 经典的轮子设计 dubbo定时任务时间轮 Disruptor追踪序列轮 相似点 基于一个2的幂次方容量的数组,通过在其上循环往复来达成如下目标: 定位下标只常数时间 充分利用局部性原理 用空间降低时间维度的局部竞争 降
阅读全文
摘要:泛化的意义? 可以以一种统一的方式发起对所有服务的所有方法的调用执行。类似JDK代理机制下的InvocationHandler,帮助隐藏一些调用细节,简化不关心具体细节的调用场景的使用。 泛化的用途? 泛化执行可以用于针对dubbo接口进行invoke测试,做dubbo的API网关等。 与WebFl
阅读全文
摘要:链接有哪几种类型?有什么作用? dubbo的链接有2类,第一类是共享链接。consumer&每一个provider实例有一个多服务共享的链接。第二类是独享链接,consumer&每一个provider实例的每一个暴露的服务有独立的链接。 在初始化client时,会根据是否配置connections来
阅读全文
摘要:解读基于dubbo 2.6.9版本。 前导问题 dubbo的线程池怎么初始化的? dubbo的线程池是怎么驱动的? dubbo的consumer&provider的线程池有什么区别? 线程池有什么问题? dubbo线程池的初始化 provider端的线程池,是在初始化server时,在包装chann
阅读全文