本文介绍 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 协议时使用的本地文件位置,默认在 |