本文介绍 RPC 的关键配置类,您可以基于这些配置类进行开发。
ProviderConfig
|
属性 |
默认值 |
说明 |
|
id |
自动生成 |
ID |
|
application |
空 ApplicationConfig |
设置应用对象。 |
|
interfaceId |
- |
设置服务接口(唯一标识元素)。 无论是普通调用还是返回调用,这里都设置实际的接口类。 |
|
uniqueId |
- |
设置服务标签(唯一标识元素)。 |
|
filterRef |
- |
过滤器配置实例。 List |
|
filter |
- |
过滤器配置别名。 List,多个别名使用英文逗号(,)分隔。 |
|
registry |
- |
设置服务端注册中心。 List |
|
methods |
- |
方法级配置,配置格式:
|
|
serialization |
hessian2 |
设置序列化协议。 |
|
register |
true |
是否注册服务。 取决于实现,可能不生效。 |
|
subscribe |
true |
是否订阅服务。 取决于实现,可能不生效。 |
|
proxy |
javassist |
设置代理类型,支持 javassist 代理和 JDK 动态代理。 |
|
ref |
- |
服务接口实现类 |
|
server |
- |
服务端 List,可以一次发到多个服务端。 |
|
delay |
0 |
设置服务延迟发布时间。 设置为 -1 代表 spring 加载完毕(通过 spring 才生效)。 |
|
weight |
- |
设置服务静态权重。 |
|
include |
- |
发布的方法列表,多个方法间以英文逗号(,)分隔。例如:
|
|
exclude |
- |
不发布的方法列表,多个方法间以英文逗号(,)分隔。例如:
|
|
dynamic |
true |
是否为动态注册。 配置为 false 表示不主动发布,您需要到管理端进行上线操作。 |
|
priority |
- |
设置服务优先级。 数值越大,优先级越高。 |
|
bootstrap |
bolt |
设置服务发布启动器。 |
|
executor |
- |
设置自定义线程池。 |
|
timeout |
- |
设置服务端执行超时时间。 单位:毫秒 超时后不会打断执行线程,只是打印警告。 |
|
concurrents |
- |
设置接口下每个方法的最大可并行执行请求数,取值如下:
|
|
cacheRef |
- |
结果缓存实现类 |
|
mockRef |
- |
Mock 实现类 |
|
mock |
- |
是否开启 Mock。 |
|
validation |
- |
是否开启参数验证(基于 JSR303)。 |
|
compress |
false |
是否启动压缩。 |
|
cache |
false |
是否启用结果缓存。 |
|
parameters |
- |
额外属性,格式:
|
ConsumerConfig
|
属性 |
默认值 |
说明 |
|
id |
自动生成 |
ID |
|
application |
空 ApplicationConfig |
设置应用对象。 |
|
interfaceId |
- |
设置服务接口(唯一标识元素)。 无论是普通调用还是返回调用,这里都设置实际的接口类。 |
|
uniqueId |
- |
设置服务标签(唯一标识元素)。 |
|
filterRef |
- |
设置过滤器配置实例。 List |
|
filter |
- |
设置过滤器配置别名。 List,多个别名使用英文逗号(,)分隔。 |
|
registry |
- |
设置服务端注册中心。 List |
|
methods |
- |
方法级配置,格式:
|
|
serialization |
hessian2 |
设置序列化协议。 |
|
register |
true |
是否注册服务。 取决于实现,可能不生效。 |
|
subscribe |
true |
是否订阅服务。 取决于实现,可能不生效。 |
|
proxy |
javassist |
设置代理类型,支持 javassist 代理和 JDK 动态代理。 |
|
protocol |
bolt |
设置调用的协议,目前支持 bolt、rest、dubbo。 |
|
directUrl |
|
设置直连地址,用于直连后 register。 |
|
generic |
false |
是否为泛化调用。 |
|
connectTimeout |
1000 |
设置建立连接超时时间。 单位:毫秒 |
|
disconnectTimeout |
10000 |
设置断开连接等待超时时间。 单位:毫秒 |
|
cluster |
failover |
设置集群模式。 |
|
connectionHolder |
all |
设置连接管理器实现。 |
|
loadBalancer |
random |
设置负载均衡算法。 |
|
lazy |
false |
是否延迟建立长连接。 第一次调用时创建。 |
|
sticky |
false |
是否使用粘性连接。 取值为 true 时,跳过负载均衡算法,使用上一个地址(一个连接断开后,才会选下一个地址)。 |
|
inJVM |
true |
是否转为 JVM 调用。 配置为 true 时,由 JVM 发现服务提供者,使用本地配置。 |
|
check |
false |
设置是否检查强依赖。 配置为 true 时,若无可用服务端,会导致启动失败。 |
|
heartbeat |
30000 |
设置客户端给服务端发送的心跳间隔。 取决于实现,可能不生效。 |
|
reconnect |
10000 |
设置客户端重建端口长连接的间隔。 取决于实现,可能不生效。 |
|
router |
- |
设置路由器配置别名。 List |
|
routerRef |
- |
设置路由器配置实例。 List |
|
bootstrap |
bolt |
设置服务引用启动器。 |
|
addressWait |
-1 |
设置等待地址获取时间。 取决于实现,可能不生效。 |
|
timeout |
3000 |
设置调用超时时间。 单位:毫秒 |
|
retries |
0 |
设置失败后重试次数。 跟集群模式有关,failover 会读取此参数。 |
|
invokeType |
sync |
设置调用类型,取值如下:
|
|
onReturn |
- |
接口下每个方法的最大可并行执行请求数,取值如下:
|
|
cacheRef |
- |
结果缓存实现类。 |
|
mockRef |
- |
Mock 实现类。 |
|
cache |
false |
是否启用结果缓存。 |
|
mock |
- |
是否开启 Mock。 |
|
validation |
- |
是否开启参数验证(基于 JSR303)。 |
|
compress |
false |
是否启动压缩。 |
|
parameters |
- |
额外属性,格式:
|
MethodConfig
|
属性 |
默认值 |
备注 |
|
name |
- |
设置方法名。 不能用于重载方法。 |
|
timeout |
- |
设置调用超时时间。 单位:毫秒 |
|
retries |
- |
设置失败后重试次数。 |
|
invokeType |
- |
设置调用类型,取值如下:
|
|
validation |
- |
是否开启参数验证(基于JSR303)。 |
|
onReturn |
- |
返回时调用的 SofaResponseCallback,用于实现 Callback 等。 |
|
concurrent |
- |
接口下每个方法的最大可并行执行请求数,取值如下:
|
|
validation |
- |
是否开启参数验证。 |
|
compress |
- |
是否启动压缩。 |
|
parameters |
- |
额外属性,格式:
|
ServerConfig
|
属性 |
默认值 |
备注 |
|
protocol |
bolt |
调用的协议,目前支持 bolt、rest、dubbo。 |
|
host |
0.0.0.0 |
实际监听 IP,与网卡地址对应。 |
|
port |
12200 |
协议的端口,默认端口如下:
|
|
contextPath |
- |
设置上下文路径。 |
|
ioThreads |
0 |
设置 IO 线程池数。 取决于实现,可能不生效。例如 Bolt 默认的默认线程数为 cpu 数量*2。0 表示自动计算。 |
|
threadPoolType |
cached |
设置业务线程池类型。 |
|
coreThreads |
20 |
设置业务线程池核心大小。 |
|
maxThreads |
200 |
设置业务线程池最大值。 |
|
telnet |
true |
是否允许 telnet。 取决于实现,可能不生效。例如 Bolt 不支持 telnet。 |
|
queueType |
normal |
设置业务线程池类型。 可用于实现优先级队列等。 |
|
queues |
0 |
设置业务线程池队列。 |
|
aliveTime |
60000 |
设置业务线程池存活时间。 单位:毫秒 |
|
preStartCore |
- |
是否初始化核心线程。 |
|
accepts |
100000 |
设置最大长连接数量。 取决于实现,可能不生效。 |
|
serialization |
hesisan2 |
设置序列化协议。 |
|
virtualHost |
- |
设置虚拟主机地址,注册到注册中心时优先使用该地址。 |
|
virtualPort |
- |
设置虚拟主机端口,注册到注册中心时优先使用该端口。 |
|
epoll |
false |
是否启动 epoll。 取决于实现,可能不生效。 |
|
daemon |
true |
是否守护端口,取值如下:
|
|
adaptivePort |
false |
是否调整端口。 设置为 true 时,若端口被占用,则会自动将端口号 +1 进行适应。 |
|
transport |
netty4 |
传输层实现 取决于实现,可能不生效。 |
|
autoStart |
true |
是否自动启动端口。 |
|
stopTimeout |
20000 |
设置优雅关闭超时时间。 单位:毫秒 |
|
boundHost |
- |
绑定的地址,默认取 host 值。 |
|
parameters |
- |
额外属性,格式:
|
RegistryConfig
|
属性 |
默认值 |
备注 |
|
protocol |
zookeeper |
服务协议,目前支持 zookeeper 和 local。 |
|
address |
- |
指定注册中心地址。 address 和 index 属性必须配置一个。 |
|
index |
- |
指定注册中心寻址服务的地址。 address 和 index 属性必须配置一个。 |
|
register |
true |
是否注册服务。 |
|
subscribe |
true |
是否订阅服务。 |
|
timeout |
10 |
调用注册中心超时时间 单位:秒 |
|
connectTimeout |
20 |
连接注册中心超时时间 单位:秒 |
|
file |
$HOME |
local 协议时使用的本地文件位置,默认在
|