dubbo
文章平均质量分 65
kuanghe12
这个作者很懒,什么都没留下…
展开
-
1、Dubbo实现SPI之 JDK介绍
Dubbo SPI的思想 --->!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLoader类实现spi机制的服务查找功能。我们来看下jdk是如何实现: JDK实现SPI服务查找: ServiceLoader。packag...原创 2017-08-04 10:43:20 · 123 阅读 · 0 评论 -
2、Dubbo基于SPI思想之Dubbo SPI实现
dubbo SPI接口定义 dubbo如何定义SPI @Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})public @interface SPI { /** * 缺省扩展点名。 */ String value() def...原创 2017-08-04 11:23:24 · 131 阅读 · 0 评论 -
3、Dubbo之动态编译
我们运行的Java代码,一般都是编译之后的字节码。Dubbo为了实现基于spi思想的扩展特性,特别是能够灵活添加额外功能,对于扩展或者说是策略的选择这个叫做控制类也好设配类也好的类要能够动态生成。当然对应已知需求如Protocol, ProxyFactory他们的策略选择的设配类代码dubbo直接提供也无妨,但是dubbo作为一个高扩展性的框架,使得用户能够添加自己的需求,根据配置动态生成自己的...原创 2017-08-04 11:42:33 · 73 阅读 · 0 评论 -
4、 Dubb代理之接口定义
代理模式这里不再这里介绍,dubbo中使用这种模式,如: dubbo服务的消费端获取的就是对远程服务的一个代理。Dubbo由代理工厂ProxyFactory对象创建代理对象。ProxyFactory 接口定义 @SPI("javassist")public interface ProxyFactory { @Adaptive({Constants.PROXY_KEY})...原创 2017-08-04 11:53:26 · 142 阅读 · 0 评论 -
5、Dubbo之Javassist字节码技术生成代理
JavassistProxyFactory:利用字节码技术来创建对象 public <T> T getProxy(Invoker<T> invoker,Class<?>[] interfaces) { return (T) Proxy.getProxy(interfaces).newInstance(newInvokerInvocati...原创 2017-08-04 14:05:36 · 202 阅读 · 0 评论 -
7、 Dubbo与spring融合
spring中bean的定义可以通过编程,可以定义在properties文件,也可以定义在通过xml文件中,用的最多的是通过xml形式,由于xml格式具有很好的自说明便于编写及维护。对于xml的文档结构、数据定义及格式验证可以通过DTD和Schema, 在spring2.0之前采用的是DTD,在spring2.0之后采用Schema。使用Schema方式使得spring更加便于与第三方进行集成...原创 2017-08-28 10:59:49 · 103 阅读 · 0 评论 -
Dubbo之Adaptive注解用法
首先来介绍下Adaptive注解:@Adaptive:为生成Adaptive实例提供参数,作用域在类或方法上; Adatpive,字面意思是个适配,但其实是个代理,它的意思是适配合适的对象处理请求。类似jdk的动态代理,因为dubbo底层会大量使用反射,出于性能考虑会默认使用javassist字节码编译生成一个adaptive拦截所有请求,然后由它基于策略动态委派合适的provi...2017-08-29 16:06:10 · 1770 阅读 · 0 评论 -
Dubbo之TpsLimitFilter
TpsLimitFilter:我们这里以TpsLimitFilter为例来说明Filter的实现。TpsLimitFilter用于限制远程调用的TPS,即每秒可以执行多少次远程调用。其源码如下: 首先,根据Activate注解可以看到,该Filter的激活条件是服务提供方,并且URL中配置了名为Constants.TPS_LIMIT_RATE_KEY的参数。该Filter持有一个TPSLi...2017-09-14 19:10:53 · 418 阅读 · 0 评论 -
Dubbo之Activate
Activate:可以被框架中自动激活加载扩展,此Annotation用于配置扩展被自动激活加载条件。Activate,看起来有点不好理解,它的意思是条件激活,用户通过group和value配置激活条件。被activate注解的扩展点在满足某种条件时会被激活,它一般用来配合filter和Invokelistener,声明他们的使用场景。我们先来看看源码 首先你对的dubbo的 SPI...2017-09-15 16:20:59 · 1518 阅读 · 0 评论