上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: Adaptive是Dubbo的自适应拓展机制。自适应拓展机制是为了解决什么问题? 解决如何根据运行时参数信息动态选择需要加载的拓展的类 常用的拓展类: interface com.alibaba.dubbo.cache.CacheFactory interface com.alibaba.dubbo 阅读全文
posted @ 2020-06-16 12:40 cao_xiaobo 阅读(1078) 评论(0) 推荐(0) 编辑
摘要: SPI 全称为 Service Provider Interface,是一种服务发现机制 一、Java SPI 从上面可以看出Java中的SPI最大的缺点是会加载一些不必要的组件。 二、Dubbo SPI (1)基本原理 Dubbo在某个接口上加上@SPI注解后,表明该接口为可扩展接口 Extens 阅读全文
posted @ 2020-06-16 12:36 cao_xiaobo 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 服务提供者服务暴露过程是,当服务提供者NettyServer启动完成后,向ZK注册订阅的过程 服务消费者服务暴露过程是,创建代理对象的时候,注ZK注册订阅的过程 一、服务提供方 注册服务:调用register方法,ZookeeperRegistry中的doRegister方法。zk节点上生成prov 阅读全文
posted @ 2020-06-16 12:32 cao_xiaobo 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 一、Dubbo中的URL 一个标准的 URL 格式至多可以包含如下的几个部分 protocol://username:password@host:port/path?key=value&key=value 在 dubbo 中,也使用了类似的 URL,主要用于在各个扩展点之间传递数据,组成此 URL 阅读全文
posted @ 2020-06-16 12:29 cao_xiaobo 阅读(1007) 评论(0) 推荐(1) 编辑
摘要: RPC 起源 RPC 这个概念术语在上世纪 80 年代由 Bruce Jay Nelson 提出。这里我们追溯下当初开发 RPC 的原动机是什么?在 Nelson 的论文 "Implementing Remote Procedure Calls" 中他提到了几点: 简单:RPC 概念的语义十分清晰和 阅读全文
posted @ 2020-06-16 12:28 cao_xiaobo 阅读(5385) 评论(0) 推荐(1) 编辑
摘要: 执行过程如下图所示 代理bean方法调用,即代理bean方法调用 我们知道demoService的bean是一个代理类,并且这个代理类继承com.alibaba.dubbo.common.bytecode.Proxy这个类,代理类中sayHello方法内部代码如下: (来源于Dubbo官网) /** 阅读全文
posted @ 2020-06-16 12:24 cao_xiaobo 阅读(2591) 评论(0) 推荐(0) 编辑
摘要: 服务提供者初始化过程,即ServiceBean 初始化过程 一、解析配置文件 spring在解析配置文件的过程中,会找到dubbo 命名空间对应的handler,DubboNamespaceHandler public class DubboNamespaceHandler extends Name 阅读全文
posted @ 2020-06-16 12:14 cao_xiaobo 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 服务消费者初始化过程,即生成RefrenceBean的过程 整体执行流程 备注:Dubbo 默认使用 Javassist 框架为服务接口生成动态代理类,可以使用使用阿里开源 Java 应用诊断工具 Arthas 反编译代理类 Dubbo官网提供的时序图 一、RefrenceBean生成过程 Refr 阅读全文
posted @ 2020-06-16 12:07 cao_xiaobo 阅读(831) 评论(0) 推荐(0) 编辑
摘要: 一、定义 ThreadLocal会为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突。因为每一个线程都拥有自己的变量副本,从而也就没有必要对该变量进行同步了。ThreadLocal提供了线程安全的共享对象,在编写多线程代码时,可以把不安全的变量封装进ThreadLocal。 概括 阅读全文
posted @ 2020-06-16 11:46 cao_xiaobo 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 对象的内存分配,从大方向上将,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地在栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况也可能直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃 阅读全文
posted @ 2020-06-16 11:26 cao_xiaobo 阅读(938) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页