dubbo配置(dubbo配置文件)

本篇文章给大家谈谈dubbo配置,以及dubbo配置文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Dubbo配置参数详解-generic

画外音:目前Dubbo在开源中国举办的2019年度最受欢迎中国开源软件中排名第3名,支持Dubbo的朋友可以去投票哇。 2019年度最受欢迎中国开源软件

Consumer端正常调用Dubbo服务时,一般都需要服务提供方提供一个jar包,只有在项目中引入该jar包,才能调用相关服务;能不能向http调用那样,我只需手颤要知道我要调用的url就可以直接调用Dubbo服务?

有的,这就是generic做的事。

generic :通用服务调用,当我们已经知道我们要调用的服务的全限定闹薯磨名及方法,就不需要服务提供者的jar就能调用Dubbo服务了。

generic要配合interfaceName参数一起使用,其中interfaceName是Dubbo服务的全限定名,比如:

当provider接收到请求时,会调用一系列的过滤器对请求进行处理,这其中就包含处理generic的过滤器: GenericFilter

该过滤器会判断液斗调用的方法是否是$invoke,如果是则会通过反射调用正在的方法

笔者认为该参数最大的用武之地是作为网关使用,笔者所在公司的网关就提供了http转换成dubbo接口调用的功能,前端使用http调用,后端使用dubbo服务进行处理;网关提供一个接口配置页面,只需要业务方在页面配置url与dubbo接口的转换关系即可,网关不需要引用服务提供者的jar包,如果接口有变动,网关无需知道,只要业务方修改配置即可。

【dubbo源码】5.配置信息解析-注解版

用于把dubbo.properties读到spring的environment中,

这个工作是由Spring的ConfigurationClassPostProcessor类来完成的.检测到某个需要注册的Bean上有@PropertySource注解,就会读该文件的配置信息,弄到environment对象的MutablePropertySources对象中。

后期会把配置信息弄到dubbo 配置类中.

该注解上还有@DubboComponentScan,@EnableDubboConfig,这两个注解是dubbo用注解与spring集成的核心了

该注解用@import导入了DubboConfigConfigurationRegistrar这个类

DubboConfigConfigurationRegistrar 实现了ImportBeanDefinitionRegistrar接口,那么spring在实例化的时候会调用DubboConfigConfigurationRegistrar重写ImportBeanDefinitionRegistrar接口的registerBeanDefinitions方法,并且将用亮逗@Import导入DubboConfigConfigurationRegistrar的类的元数据包装成importingClassMetadata对象。

其实就是为了获取入口类AnnoBean上的@EnableDubboConfig注解里的multiple属性配置的值,默认是true.

然后注册了两个DubboConfigConfiguration的内部类

通过读Class对象注册到ioc容器

类上有@EnableDubboConfigBindings,值为@EnableDubboConfigBinding数组

通过绑定,将有对应前缀的配置信拍键含息赋值到对应的配置类中

又用@Import导入DubboConfigBindingsRegistrar类,DubboConfigBindingsRegistrar这个类又实现了ImportBeanDefinitionRegistrar,EnvironmentAware接口

实现ImportBeanDefinitionRegistrar肯定是为了另外导袭笑入一些类,并且拿到导入的源类,获取源类上配置的信息

实现EnvironmentAware是为了拿到spring的environment对象,因为 dubbo.properties 已经被@PropertySource注解机制加载到了environment.MutablePropertySources中,在这里只对beanName的创建有作用。

registrar.registerBeanDefinitions :

注册的过程中,需要从environment对象中拿dubbo相关的配置,比如ApplicationConfig只拿

dubbo.application.*相关的配置,然后创建ApplicationConfig的BeanDefinition.

如果 @EnableDubboConfigBinding配置的multiple为true(默认为false),并且在配置文件中配置了同样前缀的属性,如:

这样会为同一种配置类型,生成两个BD.beanName不同的配置Bean,名称规则如下所示, #0表示的是'.'在配置的key中出现的位置

之后还会注册一个BeanPostProcessor类型的DubboConfigBindingBeanPostProcessor类的beanDefinition,BeanPostProcessor类型 会在每一个Bean实例化的过程中,根据配置的前缀,从environment拿出所需的配置,根据beanName来处理beanName相同的这一个配置Bean,把配置信息绑定到配置类的属性中。

DubboConfigBindingBeanPostProcessor.postProcessBeforeInitialization

利用 dubboConfigBinder 对象来绑定前缀为dubbo.application的配置信息到配置Bean中

这里dubboConfigBinder对象是DubboConfigBindingBeanPostProcessor中的一个属性,是在因为这个类实现了InitializingBean这个接口的afterPropertiesSet方法,dubboConfigBinder对象就是在这里初始化的

最后用的DataBinder的api把一个MutablePropertyValues绑定到Bean的属性

@import进来了DubboComponentScanRegistrar类

DubboComponentScanRegistrar又实现了ImportBeanDefinitionRegistrar接口,实现registerBeanDefinitions方法.

跟xml的逻辑一样,同样是

[img]

Dubbo的多注册中心配置

最近项目中用到了Dubbo,Zookeeper,因为底层不同服务之间的调用,涉及到了不同的注册中心。由此写一下关于多注册中心的配置。

SpringBoot框架:

使用yml配置:

dubbo:

    registry:

        protocol: zookeeper

        address: ****.****:2181|****.****:2181

注意:| 竖线宴团分割线就是前祥磨表示不同的注册中心

dubbo:

    registry:

        protocol: zookeeper

        address: ****.****:2181,****.****:2181

注意:, 逗号表示同一注册中心不同的集群

Spring xml配置

注册到不同的服务中心

dubbo:registry id="dubbo" address="****.****:2181"/

dubbo:registry id="dubbo" address="****.****:2181"/

个人公号:【排骨肉段】,可以慧斗关注一下。

关于dubbo配置和dubbo配置文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表