zoukankan      html  css  js  c++  java
  • Dubbo源码学习之基本概念

    Dubbo基本概念

    1、URL

    统一资源定位器

    标准的URL格式

    protocol://username:password@host:port/path?key=value&key2=value2

    Dubbo中的URL

    在Dubbo中:

    服务是资源, dubbo://192.168.1.1:20880/com.example.HelloService?timeout=3000

    注册中心是资源: zookeeper://127.0.0.1:2181/org.apache.dubbo.registry.RegistryService?application=demo-consumer&dubbo=2.0.2&interface=/org.apache.dubbo.registry.RegistryService&pid=1214&qos.port=33333&timestamp=1545721981947

    消费者是资源: consumer://31.6.121.218/org.apache.dubbo.demo.DemoService?application=demo-consumer&

    category=consumers&check=false&dubbo=2.0.2&interface=org.apache.dubbo.demo.DemoService&methods=sayHello&pid=1209&qos.port=33333&side=consumer&timestamp=1545
    721827784
    配置信息是资源
    元数据信息是资源
    外物皆资源,皆可用URL表示
     
    我们用 <dubbo:service interface="com.example.api.HelloService" ref="helloService"/> 定义一个服务器,那么spring会把dubbo的标签解析成Bean对象,在服务暴露初始化时,将Bean对象转换成URL格式,所有Bean属性转成URL的参数。
    URL在Dubbo中被当作是公共锲约,URL作为上下文信息贯穿整个框架
     
     
    2、Invoker
    Invoker是Dubbo的核心模型,代表一个可执行体。在服务提供方,Invoker用于调用服务提供类。在服务消费方,Invoker用于执行远程调用。
     
    3、Invocation
    调用对象
     
    4、Java SPI
    JDK标准的SPI会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,没有用上也会加载,会很浪费资源。
     
     5、Dubbo API
    @SPI
    修饰在接口上,注解的值代表的该接口默认的扩展点名
     
    @Activate
    表示实现类是否可以被激活。通常被用在一个接口有很多实现类,但是这些实现类在特定条件下才需要使用,比如RouterFactory接口,这是路由工厂接口,而它的实现类有TagRouterFactory,ConditionRouterFactory等等,在调用的时候,需要根据配置的一些信息来决定需不需要加载,而@Activate就提供了这个功能,修饰了这个注解的类,如果注解上没有任何值,那么表示无条件自动激活,当value有值,表示参数为有效值时激活,比如配置了cache=“lru”,自动激活CacheFilter,如果group=provider,表示只对提供方激活,group可选“provider”或“consumer”
     
     
    自动注入
    只有set注入,在注入时,会根据setXXX中的名字,去spring容器中寻找是否有beanName=xxx的对象,有则直接注入。如果没有,则会使用Dubbo默认的SpiExtensionFactory获取set方法参数类型的一个代理类
     
     
    自动包装
    对于一个接口实现,可以对它的外层进行包装,类似AOP
     
  • 相关阅读:
    索引唯一性扫描(INDEX UNIQUE SCAN)
    索引范围扫描(INDEX RANGE SCAN)
    算法设计与分析——回溯法算法模板
    操作系统考试复习大纲
    windows cmd 生成文件目录树
    Java 匿名类和lambda表达式
    下载Abook 高等教育出版社网站资料
    操作系统——银行家算法(Banker's Algorithm)
    算法设计与分析——最大团问题(回溯法)
    JVM内存区域
  • 原文地址:https://www.cnblogs.com/linlf03/p/13065524.html
Copyright © 2011-2022 走看看