dubbo源码解析
解析dubbo源码和楼主工作中遇到的各种问题源码分享
collective_lz
技术人员的目标不是拥有多么厉害的技术,而是用技术去促成一个产品的成功
展开
-
springboot结合dubbo的泛化调用原理
关于dubbo的泛化调用,很多人都用过,今天我们从原理层面说下dubbo的泛化调用。此文适合有一定dubbo源码基础的人,如果没有的话,先去熟悉下再来看此篇文章 一、使用 关于dubbo泛化调用的使用方式如下: public Object genericInvoke(String interfaceClass, String methodName, List<Map<Strin...原创 2018-12-26 23:02:47 · 3425 阅读 · 0 评论 -
springboot项目中dubbo启动的源码分析
现在本人开始使用起来了微服务,spring boot是微服务必备的框架,那么今天就说下,springboot中是怎么整合dubbo的(源码层面) 我们直接从AbstractApplicationContext类的refresh方法开始说起,首先springboot项目的Application上面的注解是配置扫描的路径的,如下: @SpringBootApplication @MapperSc...原创 2018-08-13 20:31:40 · 1638 阅读 · 0 评论 -
dubbo中的一致性hash(ConsistentHashLoadBalance)详解
注意:本文适用于了解dubbo以及一致性hash的读者众所周知,dubbo中有四种负载均衡策略:别的负载均衡策略就不细说了,再这里重点说一下dubo中的一致性hash负载均衡:ConsistentHashLoadBalance前面的流程不多说,我们直接进入ConsistentHashLoadBalance的doSelect()方法中: protected <T> Invoker&...原创 2018-02-27 17:21:09 · 1779 阅读 · 0 评论 -
dubbo源码之拦截调用
dubbo在生成调用者和被调用者的动态代理的时候会生成调用链,在拦截调用链走完后才会进入真正的方法调用,拦截调用分别在消费者端和调用者端都生成了调用链,代码如下:消费者端行成调用链: public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException { if (C...原创 2018-02-27 15:48:47 · 924 阅读 · 0 评论 -
dubbo源码之ExtensionLoader详解
在dubbo中,有一个核心的东西叫做ExtensionLoader,这个类负责选择用户指定的或者默认的LoadBalance,Cluster,Invoker,注册中心,编解码等,那么想知道dubbo怎么配置,以及默认都是使用的都是什么配置,就要理解清楚这个类。我们以负载均衡的选择为例:loadbalance = ExtensionLoader.getExtensionLoader(LoadBala...原创 2018-02-27 12:20:05 · 272 阅读 · 0 评论 -
dubbo持续检查超时时间线程DefaultFuture
这个类有个静态块,就是创建并运行了线程,里面有个参数RemotingInvocationTimeoutScan(),这个类就是一直轮询,查看哪个Future超时了。 static { Thread th = new Thread(new RemotingInvocationTimeoutScan(), "DubboResponseTimeoutScanTimer");原创 2017-08-24 15:31:22 · 3576 阅读 · 0 评论 -
zookeeper的参数配置详解
要讲zookeeper的参数配置,可以从代码层面说起,在zookeeper中有一个类,QuorumPeerMain类。 其main方法如下: public static void main(String[] args) { QuorumPeerMain main = new QuorumPeerMain(); try { main原创 2017-10-14 18:41:43 · 2519 阅读 · 0 评论 -
Dubbo Monitor 配置
1. Dubbo Monitor 下载 dubbo-monitor-simple-2.5.3-assembly.tar.gz 链接:http://pan.baidu.com/s/1gf88wDX 密码:ik7u 2. 配置原dubbo模块 在各模块的配置文件中加一行 dubbo:monitor protocol="registry"/> 3. 配置dubbo monitor 首转载 2017-09-26 14:19:30 · 900 阅读 · 0 评论 -
dubbo负载均衡源码解析balance
Invoker方法进来后会执行AbstractClusterInvoker的doSelect方法。 Invoker invoker = doselect(loadbalance, invocation, invokers, selected); private Invoker doselect(LoadBalance loadbalance, Invocation invocation原创 2017-09-02 16:32:58 · 589 阅读 · 1 评论 -
dubbo源码解析,关于cache缓存日志
在dubbo中,会有cache缓存文件,这样消费端就可以直接调用服务端,那么这个缓存文件是怎么生成的呢,我们看下源码分析。 首先在dorefer方法中,会进行发布订阅,就是标蓝那行, 然后 在发布订阅方法中,有个notify()方法,此方法最后进入了,AbstractRegistry的notify方法,如下:我们直接看关键性代码: dubbo就是在这个savePropert原创 2017-08-03 21:55:38 · 1898 阅读 · 0 评论 -
dubbo连接不通日志打印
dubbo连接不通的日志打印在ClientCnxn的SendThread的run方法中,如下: 如果dubbo链接zookeeper不通,还未打印日志,可以通过这里查看原因转载 2017-07-24 19:04:17 · 1115 阅读 · 0 评论 -
dubbo控制台, jdk8以及linux的scp免密传输
一般我们安装了dubbo,安装了zookeeper后都需要安装dubbo控制台,以方便监控dubbo的服务调用情况,dubbo-admin安装步骤如下: 下载地址:http://download.csdn.net/download/mappingsunlight/9489736 然后去WEB-INF下面dubbo.properties里面做配置:如下: dubbo.registry.ad原创 2017-07-19 20:09:44 · 272 阅读 · 0 评论