【知识积累】(三)、使用Dubbo

一、直连

1、释义

在开发和测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连。

点对点直连方式,将以服务接口为单位,忽略注册中心的提供者列表,A接口配置点对点,不影响B接口从注册中心获取列表。

2、配置方式

a、XML配置(常用

在dubbo:reference标签下配置url,url指向提供者,将绕过注册中心,多个地址使用分号分隔。

b、-D参数指定

java -Dcom.darren.his.facade.HisFacade=dubbo://127.0.0.1:20880

c、文件映射

当服务比较多时,可使用文件映射。-Ddubbo.resolve.file指定文件路径,优先级比XML配置dubbo:reference标签高。

java -Ddubbo.resolve.file=dubbo-resolve.properties

定义dubbo-resolve.properties:

com.darren.his.facade.HisFacade=dubbo://127.0.0.1:20880

二、使用zookeeper注册中心

http://blog.csdn.net/axin1240101543/article/details/79435685

三、读取zookeeper节点配置

http://blog.csdn.net/axin1240101543/article/details/79368271

四、公共配置

<dubbo:registry>:注册中心的配置。 对应的类是org.apache.dubbo.config.RegistryConfig。 如果您有多个不同的注册表,则可以声明多个<dubbo:registry>标记,然后在<dubbo:service>或<dubbo:reference>标记中引用具有注册表属性的指定注册表。

<dubbo:application>:应用信息配置,对应的配置类:com.alibaba.dubbo.config.ApplicationConfig

 

属性对应URL参数类型是否必填缺省值作用描述兼容性
nameapplicationstring必填 服务治理

当前应用名称,

用于注册中心计算应用间的依赖,

注意:提供者和消费者应用名

不要一样,此参数不是匹配条件,

当前项目叫什么就配置什么,

和提供者消费者角色无关。

1.0.16以上
versionapplication.versionstring  服务治理当前应用的版本2.2.0以上
ownerownerstring  服务治理

应用负责人,

填写负责人公司邮箱前缀

2.0.5以上
organizationorganizationstring  服务治理

组织名称(BU或部门),

用于注册中心区分服务来源,

此配置建议不要使用autoconfig,

直接写死在配置中。

2.0.0以上
architecturearchitecturestring  服务治理用于服务分层对应的架构2.0.7以上
environmentenvironmentstring  服务治理

应用环境,Develop、Test、

Product,

不同环境使用不同的缺省值,

以及作为只用于开发测试功能

的限制条件。

2.0.0以上
compilercompilerstring javassist性能优化

java字节码编译器,

用于动态类的生成,

可选JDK或Javassist

2.1.0以上
loggerloggerstring slf4j性能优化

日志输出方式,

可选:slf4j、jcl、log4j、jdk

2.2.0以上

五、提供者配置

1、<dubbo:protocol>:服务提供者协议配置,对应的配置类:com.alibaba.dubbo.config.ProtocolConfig。同时,如果需要支持多协议,可以声明多个<dubbo:protocol>标签,并在<dubbo:service>中通过protocol属性指定使用的协议。

dubbo协议端口缺省值:20880

rmi协议端口缺省值:1099

http和hessian协议端口缺省值:80

-1或者没有配置port,则会分配一个没有被占用的端口;

dubbo2.4.0+,分配的端口在协议缺省端口的基础上增长,确保端口段可控。

2、<dubbo:provider>:服务提供者缺省值配置,对应的配置类:com.alibaba.dubbo.config.ProviderConfig。

同时该标签为<dubbo:service>和<dubbo:protocol>标签的缺省值设置。

 

属性对应URL参数类型是否必填缺省值作用描述兼容性
id string dubbo配置关联

可以在<dubbo:service provider="">

中引用此id

1.0.16以上
protocol<protocol>string dubbo性能调优协议名称1.0.16以上
host<host>string 

自动查找

本地ip

服务发现

服务主机名,多网卡选择或指定

VIP及域名时使用,为空则自动

查找本机ip,建议不要配置,让

dubbo自动获取本机ip

1.0.16以上
threadsthreadsint 100性能调优服务线程池大小(固定大小)1.0.16以上
payloadpayloadint 

8838

8608

(=8M)

性能调优

请求以及响应数据包大小限制

单位:字节

2.0.0以上
path<path>string  服务发现

提供者上下文路径,

为服务path的前缀

2.0.0以上
serverserverstring 

dubbo协议

缺省为netty,

http协议缺省

为servlet

性能调优

 

协议的服务端实现类型,比如:

dubbo协议的mina、netty等,

http协议的jetty、servlet等。

2.0.0以上
clientclientstring 

dubbo协议

缺省为netty

性能调优

协议的客户端实现类型,比如:

dubbo协议的mina、netty等

2.0.0以上
codeccodecstring dubbo

性能调优

协议编码方式2.0.5以上
serializableserializablestring 

dubbo协议

缺省为hessian2,

rmi协议

缺省为

java,

http协议

缺省为

json。

性能调优

协议序列化方式,当协议支持

多种序列化方式时使用,比如:

dubbo协议的dubbo、hessian2

、java、compactedjava,

http协议的json、xml等。

2.0.5以上
default boolean false配置关联

是否为默认协议

,用于多协议

1.0.16以上
filterservice.filterstring  性能调优

服务提供方远程调用

过程拦截器名称,

多个名称用逗号分隔

2.0.5以上
listenerexporter.listenerstring  性能调优

服务提供方导出服务监听器

名称,多个名称用逗号分隔

2.0.5以上
threadpoolthreadpoolstring fixed性能调优

线程池类型,

可选:fixed、cached

2.0.5以上
acceptsacceptsint 0性能调优

服务提供者最大

可接受的连接数

2.0.5以上
version    versionstring 0.0.0服务发现

服务版本,建议使用两位数字

版本,如:1.0,通常在接口

不兼容时版本号才需要升级。

2.0.5以上
groupgroupstring  服务发现

服务分组,当一个接口

有多个实现,可以用分组区分

2.0.5以上
delaydelayint 0性能调优

延迟注册服务的时间

(毫秒),设为-1时,

表示延迟到Spring容器

初始化完成时暴露服务

2.0.5以上
timeoutdefault.timeoutint 1000性能调优

远程服务调用超时时间

(毫秒)

2.0.5以上
retriesdefault.retriesint 2性能调优远程服务调用
重试次数,不包括
第一次调用,
不需要重试请设为0
2.0.5以上
connectionsdefault.connectionsint 0性能调优对每个提供者的最大连接数,
rmi、http、hessian等
短连接协议表示限制连接数,
dubbo等长连接协表示
建立的长连接个数
2.0.5以上
loadbalancedefault.loadbalancestring random性能调优负载均衡策略,
可选值:random,
roundrobin,leastactive,
分别表示:随机,
轮循,最少活跃调用
2.0.5以上
asyncdefault.asyncboolean false性能调优是否缺省异步执行,
不可靠异步,
只是忽略返回值,
不阻塞执行线程
2.0.5以上
stubstubboolean false服务治理设为true,
表示使用缺省代理类名,
即:接口名 + Local后缀。
2.0.5以上
mockmockboolean false服务治理设为true,
表示使用缺省Mock类名,
即:接口名 + Mock后缀。
2.0.5以上
tokentokenboolean false服务治理令牌验证,
为空表示不开启,
如果为true,
表示随机生成动态令牌
2.0.5以上
registryregistrystring 

缺省向所有

registry注册

配置关联

向指定注册中心注册,在多个

注册中心时使用,值为

<dubbo:registry>的id属性,

多个注册中心使用逗号分隔,

如果不想将服务注册到任何

registry,可设置为N/A

2.0.5以上
dynamicdynamicboolean true服务治理

服务是否动态注册,如果设

为false,注册后将显示disable

状态,需人工启用,并且服务

提供者停止时,也不会自动

取消注册,需人工禁用。

2.0.5以上
accesslogaccesslogstring/boolean false服务治理

设为true,将向logger中输出

访问日志,也可填写访问日志

文件路径,直接把访问日志输出

到指定文件。

2.0.5以上
ownerownerstring  服务治理

服务负责人,用于服务治理,

请填写负责人公司邮箱后缀。

2.0.5以上
documentdocumentstring  服务治理服务文档URL2.0.5以上
weightweightint  性能调优服务权重2.0.5以上
executesexecutesint 0性能调优

服务提供者每服务每方法最大

并行执行请求数

2.0.5以上
activesdefault.activesint 0性能调优

每服务消费者每服务每方法最大

并发调用数

2.0.5以上
proxyproxystring javassist性能调优

生成动态代理的方式,

可选:djk,javassist

2.0.5以上
clusterdefault.clusterstring failover性能调优

集群方式,可选:

failover,failfast,failsafe,

failback,forking

2.0.5以上
deprecateddeprecatedboolean false服务治理

服务是否过时,如果设为true,

消费方引用将打印服务过时

警告error日志

2.0.5以上
queuesqueuesint 0性能调优

线程池队列大小,

当线程池满时,排队等待

执行的队列大小,建议不要

设置,当线程池满时,

应立即失败,重试其他服务器,

而不是排队,除非有特殊情况。

2.0.5以上
charsetcharsetstring UTF-8性能调优序列化编码2.0.5以上
bufferbufferint 8192性能调优网络读取缓冲区大小2.0.5以上
iothreadsiothreadsint CPU+1性能调优

IO线程池,接受网络读取

中断,以及序列化和反序列化,

不处理业务,业务线程池参见

threads配置,此线程池和CPU

相关,不建议配置。

2.0.5以上
telnettelnetstring  服务治理

所支持的telnet命令,

多个命令用逗号分隔

2.0.5以上
<dubbo:service>contextpathcontextpath 可选缺省为空串服务治理2.0.6以上
layerlayerstring  服务治理

服务提供者所在的层。

如:biz,dao,intl:web,

china:action

2.0.7以上

3、<dubbo:monitor>:监控中心配置,对应的配置类:com.alibaba.dubbo.config.MonitorConfig。

 

 

属性对应的URL参数类型是否必填缺省值作用描述兼容性
protocolprotocolstring dubbo服务治理

监控中心协议,

如果为protocol="registry",

表示从注册中心发现

监控中心地址,

否则直连监控中心

2.0.9以上
address<url>string N/A服务治理

直连监控中心服务器地址,

address="10.20.130.230:12080"

1.0.16以上

4、dubbo:service服务提供者暴露服务配置,对应的配置类:com.alibaba.dubbo.config.ServiceConfig

属性对应的URL参数类型是否必填缺省值作用描述兼容性
interface class必填 服务发现服务接口名1.0.0以上
ref object必填 服务发现服务对象实现引用1.0.0以上
versionversionstring 0.0.0服务发现

服务版本,建议使用

两位数字版本,如:1.0

通常在接口不兼容时

版本号才需要升级

1.0.0以上
groupgroupstring  服务发现

服务分组,当一个接口

有多个实现,可以用

分组区分

1.0.7以上
path    <path>string 缺省为接口名服务发现

服务路径 (注意:1.0

不支持自定义路径,

总是使用接口名,

如果有1.0调2.0,

配置服务路径可能

不兼容)

1.0.12以上
delaydelayint 0性能调优

延迟注册服务时间

(毫秒) ,设为-1时,

表示延迟到Spring

容器初始化完成时

暴露服务

1.0.14以上
timeouttimeoutint 1000性能调优

远程服务调用超时

时间(毫秒)

2.0.0以上
retriesretriesint 2性能调优

远程服务调用重试

次数,不包括第一

次调用,不需要重试

请设为0

2.0.0以上
connectionsconnectionsint 100性能调优

对每个提供者的最大

连接数,rmi、http、

hessian等短连接协议

表示限制连接数,dubbo

等长连接协表示建立

的长连接个数

2.0.0以上
loadbalanceloadbalancestring random性能调优

负载均衡策略,可选值:

random,roundrobin,leastactive,

分别表示:随机,轮循,

最少活跃调用

2.0.0以上
asyncasyncboolean false性能调优

是否缺省异步执行,

不可靠异步,只是忽略

返回值,不阻塞执行线程

2.0.0以上
stubstubclass/boolean false服务治理

设为true,表示使用缺省

代理类名,即:接口名 +

 Local后缀,服务接口

客户端本地代理类名,

用于在客户端执行本地

逻辑,如本地缓存等,

该本地代理类的构造函

数必须允许传入远程

代理对象,构造函数

如:public XxxService

Local(XxxService xxxService)

2.0.0以上
mockmockclass/boolean false服务治理

设为true,表示使用缺省

Mock类名,即:接口名 + 

Mock后缀,服务接口调用

失败Mock实现类,该Mock

类必须有一个无参构造函数,

与Local的区别在于,Local

总是被执行,而Mock只在

出现非业务异常(比如超时,

网络异常等)时执行,Local

在远程调用之前执行,Mock

在远程调用后执行。

2.0.0以上
tokentokenstring/boolean false服务治理

令牌验证,为空表示不开启,

如果为true,表示随机生成动

态令牌,否则使用静态令牌,

令牌的作用是防止消费者绕

过注册中心直接访问,保证

注册中心的授权功能有效,

如果使用点对点调用,需关闭

令牌功能

2.0.0以上
registry string 

缺省向所有

registry注册

配置关联

向指定注册中心注册,在多个

注册中心时使用,值为<dubbo:

registry>的id属性,多个注册中

心ID用逗号分隔,如果不想将

该服务注册到任何registry,

可将值设为N/A

2.0.0以上
provider string 

缺省使用第

一个provider

配置

配置关联

指定provider,值为<dubbo:

provider>的id属性

2.0.0以上
deprecateddeprecatedboolean false服务治理

服务是否过时,如果设为true,

消费方引用时将打印服务过

时警告error日志

2.0.5以上
dynamicdynamicboolean true服务治理

服务是否动态注册,如果

设为false,注册后将显示

后disable状态,需人工启

用,并且服务提供者停止

时,也不会自动取消注册,

需人工禁用。

2.0.5以上
accesslogaccesslogstring/boolean false服务治理

设为true,将向logger中

输出访问日志,也可填写

访问日志文件路径,直接把

访问日志输出到指定文件

2.0.5以上
ownerownerstring  服务治理

服务负责人,用于服务治理,

请填写负责人公司邮箱前缀

2.0.5以上
documentdocumentstring  服务治理服务文档URL2.0.5以上
weightweightint  性能调优服务权重2.0.5以上
executesexecutesint 0 

服务提供者每服务每方法

最大可并行执行请求数

2.0.5以上
proxyproxystring javassist性能调优生成动态代理方式,可选:jdk/javassist2.0.5以上
clusterclusterstring failover性能调优

集群方式,可选:failover/failfast/

failsafe/failback/forking

2.0.5以上
filterreference.filterstring default性能调优

服务消费方远程调用过程拦截器

名称,多个名称用逗号分隔

2.0.5以上
listenerinvoker.listenerstring default性能调优

服务消费方引用服务监听器

名称,多个名称用逗号分隔

 
protocol string  配置关联

 

使用指定的协议暴露服务,在

多协议时使用,值为<dubbo:

protocol>的id属性,多个协议

ID用逗号分隔

 

2.0.5以上
layerlayerstring  服务治理

 

服务提供者所在的分层。如:

biz、dao、intl:web、china:

acton。

 

2.0.7以上
registerregisterboolean true服务治理

该协议的服务是否注册到注册中心

2.0.8以上
activesactives         int          可选0           性能调优

每服务消费者每服务

每方法最大并发调用数

2.0.5以上

六、消费者配置

1、dubbo:consumer服务消费者缺省配置,配置类:com.alibaba.dubbo.config.ConsumerConfig。

同时,该标签为<dubbo:reference>标签的缺省值设置。

 

属性对应URL参数类型是否必填缺省值作用描述兼容性
timeoutdefault.timeoutint 1000性能调优

远程服务调用

超时时间(毫秒)

1.0.16以上
retriesdefault.retriesint 2性能调优

远程服务调用

重试次数,不

包括第一次调

用,不需要重

试请设为0

1.0.16以上
loadbalancedefault.loadbalancestring random性能调优

负载均衡策略

,可选值:

random,

roundrobin,

leastactive,

分别表示:随

机,轮循,最

少活跃调用

1.0.16以上
asyncdefault.asyncboolean false性能调优

是否缺省异步

执行,不可靠

异步,只是忽

略返回值,不

阻塞执行线程

2.0.0以上
connectionsdefault.connectionsint 100性能调优

每个服务对每

个提供者的最

大连接数,rmi、

http、hessian

等短连接协议

支持此配置,

dubbo协议长

连接不支持此配置

1.0.16以上
genericgenericboolean false服务治理

是否缺省泛化

接口,如果为

泛化接口,将

返回GenericService

2.0.0以上
checkcheckboolean true服务治理

启动时检查提

供者是否存在,

true报错,

false忽略

1.0.16以上
proxyproxystring javassist性能调优

生成动态代理

方式,可选:

jdk/javassist

2.0.5以上
ownerownerstring  服务治理

调用服务负责人

,用于服务治理,

请填写负责人

公司邮箱前缀

2.0.5以上
activesdefault.activesint 0性能调优

每服务消费者

每服务每方法

最大并发调用数

2.0.5以上
clusterdefault.clusterstring failover性能调优

集群方式,可选:failover/failfast/

failsafe/failback/forking

2.0.5以上
filterreference.filterstring  性能调优

服务消费方远

程调用过程拦

截器名称,多

个名称用逗号分隔

2.0.5以上
listenerinvoker.listenerstring  性能调优

服务消费方引

用服务监听器

名称,多个名称

用逗号分隔

2.0.5以上
registry string 

缺省向所有

registry注册

配置关联

向指定注册中

心注册,在多

个注册中心时

使用,值为<dubbo:

registry>的id属性,

多个注册中心ID用

逗号分隔,如果不想

将该服务注册到

任何registry,

可将值设为N/A

2.0.5以上
layerlayerstring  服务治理

服务调用者所在

的分层。如:biz、

dao、intl:web、

china:acton。

2.0.7以上
initinitboolean  性能调优

是否在afterPropertiesSet()

时饥饿初始化引用,否则

等到有人注入或引用

该实例时再初始化。

2.0.10以上
cachecachestring/boolean  服务治理

以调用参数为key,缓存

返回结果,可选:lru, 

threadlocal, jcache等

dubbo2.1.0以上
validationvalidationboolean  服务治理

是否启用JSR303标准

注解验证,如果启用,

将对方法参数上的注解

进行校验

dubbo2.1.0以上

 

2、dubbo:reference服务消费者引用服务配置,对应的配置类:com.alibaba.dubbo.config.ReferenceConfig。

 

属性对应URL参数类型是否必填缺省值作用描述兼容性
id string必填 配置关联服务引用BeanId1.0.0以上
interface class必填 服务发现服务接口名1.0.0以上
versionversionstring  服务发现

服务版本,与服

务提供者的版本一致

1.0.0以上
groupgroupstring  服务发现

服务分组,当一个

接口有多个实现,

可以用分组区分,

必需和服务提供方一致

1.0.7以上
timeouttimeoutlong 

缺省使用<dubbo

:consumer>的

timeout

性能调优

服务方法调用

超时时间(毫秒)

1.0.5以上
retriesretriesint 

缺省使用<dubbo:

consumer>的

retries

性能调优

远程服务调用重

试次数,不包括

第一次调用,不

需要重试请设为0

2.0.0以上
connectionsconnectionsint 

缺省使用<dubbo:

consumer>的

connections

性能调优

对每个提供者的

最大连接数,rmi、

http、hessian等

短连接协议表示

限制连接数,

dubbo等长连接

协表示建立的长

连接个数

2.0.0以上
loadbalanceloadbalancestring 

缺省使用<dubbo:

consumer>的

loadbalance

性能调优

负载均衡策略,

可选值:random,

roundrobin,leastactive,

分别表示:随机,

轮循,最少活跃调用

2.0.0以上
asyncasyncboolean 

缺省使用<dubbo:

consumer>的

async

性能调优

是否异步执行,

不可靠异步,

只是忽略返回值,

不阻塞执行线程

2.0.0以上
generic boolean 

缺省使用<dubbo:

consumer>的

generic

服务治理

是否缺省泛化接口,

如果为泛化接口,

将返回GenericService

2.0.0以上
check boolean 

缺省使用<dubbo:

consumer>的

check

服务治理

启动时检查提供者

是否存在,true

报错,false忽略

2.0.0以上
urlurlstring  服务治理

点对点直连服务

提供者地址,

将绕过注册中心

1.0.6以上
stubstubclass/boolean  服务治理

服务接口客户端

本地代理类名,

用于在客户端

执行本地逻辑,

如本地缓存等,

该本地代理类的

构造函数必须允

许传入远程代理

对象,构造函数

如:public Xxx

ServiceLocal(XxxService xxxService)

2.0.0以上
mockmockclass/boolean  服务治理

服务接口调用失败

Mock实现类名,该

Mock类必须有一个

无参构造函数,与

Local的区别在于,

Local总是被执行,

而Mock只在出现

非业务异常(比如

超时,网络异常等)

时执行,Local在远

程调用之前执行,

Mock在远程调用后执行。

dubbo1.0.13以上
cachecachestring/boolean  服务治理

以调用参数为key,

缓存返回结果,

可选:lru, threadlocal, 

jcache等

dubbo2.1.0以上
validationvalidationboolean  服务治理

是否启用JSR303

标准注解验证,如

果启用,将对方法

参数上的注解进行校验

dubbo2.1.0以上
proxyproxyboolean javassist性能调优

选择动态代理实现

策略,可选:

javassist, jdk

2.0.2以上
clientclientstring  性能调优

客户端传输类型设置,

如Dubbo协议的netty或mina。

2.0.0以上
registry string 

缺省将从所有

注册中心获服

务列表后合并

结果

配置关联

从指定注册中心注册

获取服务列表,在多个

注册中心时使用,值为

<dubbo:registry>的id属性,

多个注册中心ID用逗号分隔

2.0.0以上
ownerownerstring  服务治理

调用服务负责人,

用于服务治理,

请填写负责人公司邮箱前缀

2.0.5以上
activesactivesint 0性能调优

每服务消费者

每服务每方法最大

并发调用数

2.0.5以上
clusterclusterstring failover性能调优

集群方式,可选:failover/failfast/

failsafe/failback/forking

2.0.5以上
filterreference.filterstring default性能调优

服务消费方远程调用

过程拦截器名称,

多个名称用逗号分隔

2.0.5以上
listenerinvoker.listenerstring default性能调优

服务消费方引用服务

监听器名称,多个名

称用逗号分隔

2.0.5以上
layerlayerstring  服务治理

服务调用者所在的分层。

如:biz、dao、intl:web、china:acton。

2.0.7以上
initinitboolean false性能调优

是否在afterPropertiesSet()

时饥饿初始化引用,否则等

到有人注入或引用该实例

时再初始化。

2.0.10以上
protocolprotocolstring  服务治理

只调用指定协议的服务

提供方,其它协议忽略。

2.2.0以上

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用MQ调用第Dubbo接口的具体步骤如下: 1. 首先,你需要配置MQ的相关信息,包括MQ的地址、端口号、用户名和密码等。这些信息可以在MQ的官方文档中找到。 2. 接下来,你需要创建一个MQ的生产者,用于发送消息到MQ。你可以使用MQ的Java客户端库来实现这个功能。 3. 在发送消息之前,你需要构造一个符合Dubbo接口定义的消息体。这个消息体包括接口名、方法名和参数等信息。 4. 将构造好的消息体发送到MQ中。 5. 在Dubbo的服务端,你需要创建一个MQ的消费者,用于接收MQ中的消息。 6. 当接收到消息后,你可以解析消息体,获取到接口名、方法名和参数等信息。 7. 根据接口名和方法名,调用对应的Dubbo接口。 8. 将Dubbo接口的返回结果发送回MQ。 需要注意的是,使用MQ调用第Dubbo接口可能会引入一定的延迟,因为消息需要经过MQ的传输。此外,如果Dubbo接口的调用超时,客户端会收到一个TimeoutException异常,服务端会收到一个警告。在Dubbo的官方文档中可以找到更多关于Dubbo调用超时处理的信息。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [如何处理Dubbo调用超时?](https://blog.csdn.net/weixin_45788094/article/details/102703290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值