
dubbo
文章平均质量分 95
之诚
期待改变命运
展开
-
SpringCloud整合Dubbo的源码
前言现在SpringCloud Alibaba 十分热门, dubbo作为阿里的招牌微服务相关的框架,自然整合进入了SpringCloud了. 我找了下官网发现如下的maven依赖. <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId> <version>2原创 2021-04-02 23:21:11 · 1516 阅读 · 0 评论 -
Dubbo的Cluster是在哪里包装了Invoker的
目录DirectoryRouterLoadBalanceClusterCluster 是通过SPI加载的。ReferenceConfig 类ReferenceConfig的调用流程createProxy创建代理类Cluster#join方法总结这张图很好的说明了Dubbo中Cluster的作用,但是Cluster是如何起作用的,如何包装Inovker的呢? 我会在下面的文章中说明。Directory维护服务提供者列表(List),并且实时监控服务提供者的状态,当服务提供者下线后,需要把提供其移除。原创 2020-09-23 22:12:48 · 546 阅读 · 0 评论 -
Dubbo的请求和响应如何关联起来的 ------- DefaultFuture 类详解
前言Dubbo 的底层通信默认是使用的Netty来通信的, consumer和provider建立的是tcp连接,双方都可以互相通信。那么就有一个问题, consumer可能发送很多的请求后, 然后又接受到了很多的provider的响应, 他是如何把Request和Response关联起来的呢?Dubbo 主要是依赖DefaultFuture这个类, DefaultFuture继承自CompletableFuture, 并且每个Request都有一个唯一的id。 在响应中会带上这个id的。 Dubb原创 2020-08-28 17:29:23 · 1825 阅读 · 0 评论 -
Dubbo的Wrapper类原理接口 -- 实现类似AOP的效果
Dubbo的wrapper 类实际上也是SPI接口的扩展类, 只是这个扩展类必须以wrapper命名结尾,必须有一个参数的构造方法而已。 在正常获取SPI接口的时候实际上获取的是Wrapper的实现类, 这个实现类使用静态代理方式可以代理SPI实现类而已。原创 2020-08-20 00:55:35 · 1279 阅读 · 0 评论 -
Dubbo整合Spring之如何进行服务注册和服务暴露的
目录Dubbo监听Spring启动完成事件开始暴露服务exportServices 方法export 暴露服务方法doExport和doExportUrls方法doExportUrlsFor1Protocol但是为何debug没有进入呢?PROXY_FACTORY.getInvokerPROTOCOL.export(wrapperInvoker)在前面的文章中我主要说明了以下几个问题:Spring启动的时候如何扫描到DubboService注解,并加入容器中的。主要是通过ServiceClass原创 2020-08-10 20:49:38 · 1714 阅读 · 1 评论 -
Dubbo的负载均衡LoadBalance的源码分析和如何实现负载均衡
五种负载均衡策略Dubbo 最新的源码中可以看到提供了以下五种策略:RandomLoadBalance: 随机访问策略LeastActiveLoadBalance: 最少访问策略ConsistentHashLoadBalance: 一致性hash访问策略RoundRobinLoadBalance: 轮流访问策略ShortestResponseLoadBalance:最快响应策略(就是调用响应最快的服务提供者)LoadBalance 接口这五个策略都实现了实现了AbstractLoadBa原创 2020-08-05 18:53:28 · 717 阅读 · 0 评论 -
Dubbo启动过程源码分析 -- Environment类的详解(5)
Environment主要是用来存储配置的信息,在启动的过程中会从应用各个地方加载配置后放入到Environment中原创 2020-07-13 15:27:45 · 971 阅读 · 0 评论 -
Dubbo的启动过程源码分析 -- 初始化过程(4)
到这里dubbo启动的初始化流程结束, 但是具体配置的加载细节还是不明白, 比如配置文件的信息如何加载到程序中, 三个核心类中 ConfigManager 和Environment 是如何作用的机制还是不太明白, 这些疑问会留在后面的文章中说明的。原创 2020-07-09 15:53:56 · 1265 阅读 · 0 评论 -
Dubbo的SPI机制的实现的源码解析(0)
Dubbo的SPI机制的实现的源码解析原创 2020-07-06 09:44:55 · 505 阅读 · 0 评论 -
Dubbo整合Spring原理之@Reference和@DubboReference生效机制(3)
Dubbo的2.7.7版本中已经标注了Reference和Service注解为@Deprecated弃用了。改用DubboReference和DubboService这两个注解了我们可以看到注解的方式启动可以使用EnableDubbo注解,这个注解又’继承’了EnableDubboConfig和DubboComponentScan两个注解。 在EnableDubboConfig注解中的起作用的类是Import引入的DubboConfigConfigurationRegistrar类。注解的继承, 是原创 2020-07-02 09:55:15 · 29020 阅读 · 4 评论 -
Dubbo注解方式与spring的整合原理即@DubboService的机制(2)
本次的文章的版本都是基于 2.7.7 版本的。 2.7.7提供了@EnableDubbo注解来用于和spring整合。对于Import注解的源码的讲解,推荐看下这篇博客, 讲的十分清楚明白: https://blog.youkuaiyun.com/boling_cavalry/article/details/82530167@EnableDubbo注解这个注解上面也有@EnableDubboConfig和@DubboComponentScan两个注解。Spring已经提供了注解的注解功能, 可以实现类似的注原创 2020-06-29 21:08:28 · 16842 阅读 · 1 评论 -
Dubbo的XML的使用方式是如何与Spring的整合原理(1)
目录Dubbo的XML的使用方式是如何与Spring的整合原理ServiceClassPostProcessor实现了BeanDefinitionRegistryPostProcessor类ServiceClassPostProcessor的bean实例是如何提前注入到容器中的。dubbo自定义标签的解析类DubboNamespaceHandler 的定义如下:`AnnotationBeanDefinitionParser`类源码Dubbo的XML的使用方式是如何与Spring的整合原理dubbo的Se原创 2020-06-28 10:21:47 · 1106 阅读 · 0 评论