前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dubbo(2.7.3) 8.XML配置

dubbo(2.7.3) 8.XML配置

作者头像
程序员朱永胜
发布2023-12-12 13:39:04
2080
发布2023-12-12 13:39:04
举报
文章被收录于专栏:朱永胜的私房菜

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

以 XML 配置的方式来配置你的 Dubbo 应用

有关 XML 的详细配置项,请参见:配置参考手册[1]。如果不想使用 Spring 配置,而希望通过 API 的方式进行调用,请参见:API 配置[2]。想知道如何使用配置,请参见:快速启动[3]

请在此查看文档描述的完整示例[4]

provider.xml 示例

代码语言:javascript
复制
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    <dubbo:application name="demo-provider"/>
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <dubbo:protocol name="dubbo" port="20890"/>
    <bean id="demoService" class="org.apache.dubbo.samples.basic.impl.DemoServiceImpl"/>
    <dubbo:service interface="org.apache.dubbo.samples.basic.api.DemoService" ref="demoService"/>
</beans>

consumer.xml 示例

代码语言:javascript
复制
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    <dubbo:application name="demo-consumer"/>
    <dubbo:registry group="aaa" address="zookeeper://127.0.0.1:2181"/>
    <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.samples.basic.api.DemoService"/>
</beans>

所有标签都支持自定义参数,用于不同扩展点实现的特殊配置,如:

代码语言:javascript
复制
<dubbo:protocol name="jms">
    <dubbo:parameter key="queue" value="your_queue" />
</dubbo:protocol>

或: 1[5]

代码语言:javascript
复制
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
    <dubbo:protocol name="jms" p:queue="your_queue" />
</beans>

配置之间的关系

image.png

标签

用途

解释

<dubbo:service/>

服务配置

用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心

<dubbo:reference/> 2[6]

引用配置

用于创建一个远程服务代理,一个引用可以指向多个注册中心

<dubbo:protocol/>

协议配置

用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受

<dubbo:application/>

应用配置

用于配置当前应用信息,不管该应用是提供者还是消费者

<dubbo:module/>

模块配置

用于配置当前模块信息,可选

<dubbo:registry/>

注册中心配置

用于配置连接注册中心相关信息

<dubbo:monitor/>

监控中心配置

用于配置连接监控中心相关信息,可选

<dubbo:provider/>

提供方配置

当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选

<dubbo:consumer/>

消费方配置

当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选

<dubbo:method/>

方法配置

用于 ServiceConfig 和 ReferenceConfig 指定方法级的配置信息

<dubbo:argument/>

参数配置

用于指定方法参数配置

不同粒度配置的覆盖关系

以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:

  • 方法级优先,接口级次之,全局配置再次之。
  • 如果级别一样,则消费方优先,提供方次之。

其中,服务提供方配置,通过 URL 经由注册中心传递给消费方。

(建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置)。

理论上 ReferenceConfig 中除了interface这一项,其他所有配置项都可以缺省不配置,框架会自动使用 ConsumerConfig,ServiceConfig, ProviderConfig 等提供的缺省配置。

参考资料

[1]

配置参考手册: https://cn.dubbo.apache.org/zh-cn/docsv2.7/user/references/xml

[2]

API配置: https://cn.dubbo.apache.org/zh-cn/docsv2.7/user/configuration/api

[3]

快速启动: https://cn.dubbo.apache.org/zh-cn/docsv2.7/user/quick-start

[4]

完整示例: https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-spring-xml

[5]

1: #fn:1

[6]

2: #fn:2

本文由 mdnice 多平台发布

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • provider.xml 示例
  • consumer.xml 示例
  • 配置之间的关系
  • 不同粒度配置的覆盖关系
    • 参考资料
    相关产品与服务
    微服务引擎 TSE
    微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档