随笔分类 -  Dubbo源码解析

摘要:负载均衡 Dubbo支持的负载均衡有如下策略:默认是随机 权重随机(random),实现类RandomLoadBalance 权重轮询(roundrobin),实现类RoundRobinLoadBalance 最少活跃(leastactive)负载策略,实现类LeastActiveLoadBalan 阅读全文
posted @ 2022-02-10 10:23 gaojy 阅读(22) 评论(0) 推荐(0) 编辑
摘要:在对服务者调用流程的讲解中,最后invoker调用链是 RegisterDirectory$InvokerDelegate.invoke(InvokerWrapper.invoke) -> ListenerInvokerWraper.invoke -> ProtocolFilterWrapper.i 阅读全文
posted @ 2022-02-10 10:21 gaojy 阅读(76) 评论(0) 推荐(0) 编辑
摘要:概述 关于dubbo的路由配置,可以查看官网,那么路由到底做了什么呢?起始就是根据一次服务请求,消费者根据路由配置决定调用哪些服务提供者,然后将对应的服务提供者进行负载均衡,集群容错。 路由规则调用流程 调用入口:AbstractClusterInvoker#invoke => List<Invok 阅读全文
posted @ 2022-02-10 10:17 gaojy 阅读(125) 评论(0) 推荐(0) 编辑
摘要:override协议可以让用户动态修改配置,并实时生效。关于动态配置的介绍可以详细看官网https://dubbo.apache.org/zh/docs/v2.7/user/examples/config-rule-deprecated/#m-zhdocsv27userexamplesconfig- 阅读全文
posted @ 2022-02-10 10:15 gaojy 阅读(319) 评论(0) 推荐(0) 编辑
摘要:在上一篇中提到了RegisteryProtocol#doRefer里面的invoker 为 MockClusterInvoker。 我们在ExtensionLoader一节中,漏讲了一个细节,那就是获取自适应扩展类的时候,采用字节码生成技术的时候,生成的$Adaptive类中获取扩展类是通过Exte 阅读全文
posted @ 2022-02-10 10:10 gaojy 阅读(72) 评论(0) 推荐(0) 编辑
摘要:在上一节中,由于篇幅原因,对invoker的介绍会在本章节详细阐述。 生成消费者调用invoker 将代码点到ReferenceConfig#createProxy -> invoker = refprotocol.refer(interfaceClass, url); 这边还不得不提一下refpr 阅读全文
posted @ 2022-01-08 00:16 gaojy 阅读(235) 评论(0) 推荐(0) 编辑
摘要:在看完上篇的服务提供者启动流程之后,再来看消费者的启动流程就简单很多了,其大体的设计流程是差不多的。服务消费者的启动主要调用ReferenceConfig#get(), get方法跟服务提供者的export方法类似,主要关注checkAndUpdateSubConfigs和init方法。 Refer 阅读全文
posted @ 2021-12-28 22:17 gaojy 阅读(221) 评论(0) 推荐(0) 编辑
摘要:服务暴露实际上就是启动server本地监听,并且将服务信息注册到注册中心上。在dubbo:service上的export可以指定是否暴露,同时provider也可以指定延迟暴露的时间。 if (!shouldExport()) { // 判断是否暴露服务,由dubbo:service export= 阅读全文
posted @ 2021-12-19 20:29 gaojy 阅读(340) 评论(0) 推荐(0) 编辑
摘要:Dubbo在配置的提供上,提供了丰富的功能,也考虑了很多场景,具体可以参考官方文档。其中配置的来源也有很多,包括了外部的配置中心,这些配置是如何获取,如何解析,最后如何在dubbo中生效的呢?带着这些疑问,学习一下dubbo provider启动流程。这边还是第一章以API方式入手,入口在servi 阅读全文
posted @ 2021-12-18 20:29 gaojy 阅读(524) 评论(0) 推荐(0) 编辑
摘要:dubbo中自己实现了不同于java的SPI插件化机制,使得Dubbo可以在对多个指定的目录中加载扩展实现,同时与Java SPI不同的是可以实现按需加载。 Dubbo的扩展SPI有如下特点:1. 单例,对于某个类型扩展,只会有一个ExtensionLoader;2. 延迟加载,可以一次只获取想要的 阅读全文
posted @ 2021-12-14 14:38 gaojy 阅读(362) 评论(0) 推荐(0) 编辑
摘要:本章节将会介绍dubbo 2.7.1的项目工程结构,以及一个简单的helloworld来运行,让读者对dubbo有一个更加直观的了解。 项目结构: dubbo-common 公共逻辑子项目,定义了各子项目中 通用的 组件 和 工具类,如:IO、日志、配置处理等。 dubbo-rpc 分布式协调服务框 阅读全文
posted @ 2021-11-16 23:54 gaojy 阅读(93) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示