您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Dubbo常用配置项说明

时间:2020-07-13 09:31:19  来源:  作者:

概述

Dubbo的配置项非常多,但所有配置项分为三大类,服务发现、服务治理、性能调优。服务发现类的配置项,表示该配置项用于服务的注册与发现,目的是让消费方找到提供方;服务治理类的配置项,表示该配置项用于治理服务间的关系,或为开发测试提供便利条件;对于性能调优类的配置项,则表示该配置项用于调优性能,不同的选项对性能会产生影响。所有配置最终都将转换为URL表示,并由服务提供方生成,经注册中心传递给消费方,各属性对应URL的参数。不同的配置项,有不同的使用场景,掌握配置项的含义和使用场景,是用好Dubbo框架的基本功。

Dubbo目前可供配置的配置项或者xml标签一共有13种,涉及可配置的属性210个,有些配置项和属性存在优先级和缺省关系,也并不是每个配置项都是必须的。下面是这13种配置项及其常用属性的配置说明。

dubbo:service

服务提供者暴露服务配置,用来配置一个服务,在服务提供者端进行配置。对应的配置类是org.Apache.dubbo.config.ServiceConfig。比如下面的配置,定义和曝露了一个用户服务userService。

interface:服务接口名,一般使用接口的完整类名,必填项

ref:服务接口实现类bean的id引用,必填项

<bean id="userService" class="com.fandou.coffee.provider.user.UserServiceImpl"/>
  
<dubbo:service interface="com.fandou.coffee.api.user.UserService" ref="userService"/>

dubbo:reference

服务消费者引用服务配置,在服务消费者端配置,用来定义引用一个远程的服务。对应的配置类是org.apache.dubbo.config.ReferenceConfig。

id:服务引用BeanId,必填项

interface:服务接口名,一般使用接口的完整类名,与dubbo:service中的interface保持一致,必填项

check:检查引用的服务是否存在,属于服务治理类的属性,默认为true,如果注册中心不存在应用的服务,将报错抛出异常。可选项。

<dubbo:reference id="userService" check="false" interface="com.fandou.coffee.api.user.UserService"/>

dubbo:protocol

服务提供者协议配置,服务提供者端或服务消费者端均可配置。对应的配置类是org.apache.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个dubbo:protocol标签,并在dubbo:service中通过protocol属性指定使用的协议,多个协议id用逗号分隔。

id:协议BeanId,可以在dubbo:service的protocol引用此id,如果id不填,缺省和name属性值一样,重复则在name后加序号。可选项。

name:协议名称,如果不配置dubbo:protocol,将使用dubbo:provider中的设置,默认dubbo。必填。

port:协议通信端口号,可选项,缺省值20880.

<dubbo:protocol name="dubbo" port="20880"/>

dubbo:registry

注册中心配置,Dubbo目前主要支持zookeeper以及redis等。对应的配置类是org.apache.dubbo.config.RegistryConfig。同时如果有多个不同的注册中心,可以声明多个dubbo:registry标签,并在dubbo:service或dubbo:reference的registry属性指定使用的注册中心。

id:注册中心引用BeanId,可选项,可以在dubbo:service的registry或dubbo:reference的registry中引用此ID。

address:注册中心服务器地址,格式为protocol://ip:port,必填项。如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如:protocol://ip:port,protocol://ip:port,不同集群的注册中心,请配置多个dubbo:registry标签。

protocol:注册中心地址协议,支持dubbo, multicast, zookeeper, redis, consul, sofa, etcd, nacos等协议,可选项,缺省值为dubbo。

port:注册中心缺省端口,当address没有带端口时使用此端口作为缺省值,可选项,缺省值为9090。

username:登录注册中心用户名,如果注册中心不需要验证可不填。可选项。

password:登录注册中心密码,如果注册中心不需要验证可不填。可选项。

transport:网络传输方式,可选mina,netty。可选项,缺省值为netty。

下面的配置,使用address属性,指定了使用的协议、注册中心服务器地址以及端口号

<dubbo:registry address="zookeeper://192.168.8.156:2181"/>

dubbo:Application

应用信息配置,以及qos等。对应的配置类是org.apache.dubbo.config.ApplicationConfig。

name:当前应用名称,用于注册中心计算应用间依赖关系,注意:消费者和提供者应用名不要一样,此参数不是匹配条件,当前项目叫什么名字就填什么,和提供者消费者角色无关。必填项。

logger:日志输出方式,可选:slf4j,jcl,log4j,log4j2,jdk,缺省值为slf4j。

下面的配置定义了一个用户服务提供者应用,并使用slf4j作为日志输出。

<dubbo:application name="user-service-provider.xml" logger="slf4j"/>

下面配置了一个服务消费者应用,同时还配置了qos属性

    <!-- 服务消费方应用名称,方便用于依赖跟踪 -->
    <dubbo:application name="user-service-consumer" logger="slf4j">
        <dubbo:parameter key="qos.enable" value="true" />
        <dubbo:parameter key="qos.accept.foreign.ip" value="false" />
        <!-- 配置QOS端口,由于服务提供方端已经使用了默认的22222,这里需要改用以下,否则在同一个机器同时将出现端口占用问题 -->
        <dubbo:parameter key="qos.port" value="33333" />
    </dubbo:application>

dubbo:monitor

监控中心配置,可选配置项。对应的配置类是org.apache.dubbo.config.MonitorConfig。此配配置项只有两个属性

protocol:监控中心协议,如果为protocol="registry",表示从注册中心发现监控中心地址,否则直连监控中心。可选项,缺省值为dubbo。

address:直连监控中心服务器地址,比如address="10.20.130.230:12080"。可选项,缺省值为N/A。

dubbo:module

模块信息配置,可选配置项。对应的配置类是org.apache.dubbo.config.ModuleConfig。

name:当前模块名称,用于注册中心计算模块间依赖关系。

下面的配置定义了一个user模块:

当前模块名称,用于注册中心计算模块间依赖关系。

dubbo:provider

服务提供者缺省值配置,可选配置项,常用于配置缺省值。对应的配置类是org.apache.dubbo.config.ProviderConfig。同时该标签为dubbo:service和dubbo:protocol标签的缺省值设置。

dubbo:consumer

服务消费者缺省值配置,可选配置项,常用于配置缺省值。配置类是org.apache.dubbo.config.ConsumerConfig 。同时该标签为dubbo:reference标签的缺省值设置。

dubbo:method

方法级配置,可选配置项。对应的配置类是org.apache.dubbo.config.MethodConfig。同时该标签为dubbo:service或dubbo:reference的子标签,用于控制到方法级。

dubbo:argument

方法参数配置,可选配置项。对应的配置类: org.apache.dubbo.config.ArgumentConfig。该标签为 dubbo:method 的子标签,用于方法参数的特征描述,比如:

<dubbo:method name="findXxx" timeout="3000" retries="2">
    <dubbo:argument index="0" callback="true" />
</dubbo:method>

dubbo:parameter

选项参数配置,可选配置项。对应的配置类是JAVA.util.Map。同时该标签为dubbo:protocol或dubbo:service或dubbo:provider>或dubbo:reference或dubbo:consumer的子标签,用于配置自定义参数,该配置项将作为扩展点设置自定义参数使用。

dubbo:config-center

配置中心,可选配置项。对应的配置类是org.apache.dubbo.config.ConfigCenterConfig。

总结

不同的配置项,有不同的使用场景,掌握配置项的含义和使用场景,是用好Dubbo框架的基本功。



Tags:Dubbo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
第一部分介绍生产上出现Dubbo服务拥堵的情况,以及Dubbo官方对于单个长连接的使用建议。 第二部分介绍Dubbo在特定配置下的通信过程,辅以代码。 第三部分介绍整个调用过程中与性能相关的一些参数。 第四部分通过调整...【详细内容】
2021-06-18  Tags: Dubbo  点击:(123)  评论:(0)  加入收藏
1. Dubbo简介及线程池策略Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架。提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现...【详细内容】
2021-05-18  Tags: Dubbo  点击:(202)  评论:(0)  加入收藏
Dubbo里除了Service和Config层为API,其它各层均为SPI。相比于Java中的SPI仅仅通过接口类名获取所有实现,Dubbo的实现可以通过接口类名和key值来获取一个具体的实现。通过SPI...【详细内容】
2020-09-07  Tags: Dubbo  点击:(62)  评论:(0)  加入收藏
Dubbo(来自于阿里巴巴)Dubbo是一个分布式服务框架,致力于提供高性能和透明化的PRC远程调用服务调用方案。 Dubbo的的特点 通过spring配置的方式即可完成服务化,对于应用无入侵。...【详细内容】
2020-08-10  Tags: Dubbo  点击:(41)  评论:(0)  加入收藏
概述Dubbo支持同一服务向多个注册中心同时注册,或者不同服务分别注册到不同的注册中心上去,甚至可以同时引用注册在不同注册中心上的同名服务。另外,注册中心是也支持自定义扩...【详细内容】
2020-07-18  Tags: Dubbo  点击:(54)  评论:(0)  加入收藏
导读:在分布式系统中,远程调用是最基础也是最重要的基石。历史上,曾经先后出现过 CORBA、RMI、EJB、WebService 等技术和规范,在服务化以及微服务日趋流行的今天,更多的被广泛使...【详细内容】
2020-07-13  Tags: Dubbo  点击:(65)  评论:(0)  加入收藏
概述Dubbo的配置项非常多,但所有配置项分为三大类,服务发现、服务治理、性能调优。服务发现类的配置项,表示该配置项用于服务的注册与发现,目的是让消费方找到提供方;服务治理类...【详细内容】
2020-07-13  Tags: Dubbo  点击:(95)  评论:(0)  加入收藏
前言这周收到外部合作同事推送的一篇文章,【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告。按照文章披露的漏洞影响范围,可以说是当前所有...【详细内容】
2020-07-09  Tags: Dubbo  点击:(118)  评论:(0)  加入收藏
0x01 漏洞背景2020年06月23日, 360CERT监测发现 Apache Dubbo 官方 发布了 Apache Dubbo 远程代码执行 的风险通告,该漏洞编号为 CVE-2020-1948,漏洞等级:高危。Apache Dubbo...【详细内容】
2020-06-24  Tags: Dubbo  点击:(47)  评论:(0)  加入收藏
不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发。 telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来...【详细内容】
2020-06-18  Tags: Dubbo  点击:(59)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的&emsp;&emsp;程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条