服务维度配置

本文介绍在 SOFABoot 环境下完整的 SOFARPC 服务发布与引用说明。

发布服务

<bean id="helloSyncServiceImpl" class="com.alipay.sofa.rpc.samples.invoke.HelloSyncServiceImpl"/>
<sofa:service ref="helloSyncServiceImpl" interface="com.alipay.sofa.rpc.samples.invoke.HelloSyncService"unique-id="">
<sofa:binding.bolt>
<sofa:global-attrs registry="" serialize-type="" filter="" timeout="3000" thread-pool-ref=" "
warm-up-time="60000"
warm-up-weight="10" weight="100"/>
</sofa:binding.bolt>
<sofa:binding.rest>
</sofa:binding.rest>
</sofa:service>

属性说明

属性

名称

默认值

备注

id

ID

bean 名

-

class

-

ref

服务接口实现类

-

-

interface

服务接口(唯一标识元素)

-

不管是普通调用和返回调用,这里都设置实际的接口类。

unique-id

服务标签(唯一标识元素)

-

-

filter

过滤器配置别名

-

多个 filter 需使用逗号隔开。

registry

服务端注册中心

DSR

支持的注册中心请参见 注册中心路由

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

timeout

服务端执行超时时间

-

-

serialize-type

序列化协议

hessian2、protobuf

-

thread-pool-ref 服务端当前接口使用的线程池

-

-

weight

服务静态权重

-

-

warm-up-weight

服务预热权重

-

-

warm-up-time

服务预热时间

-

单位毫秒。

引用服务

<sofa:reference jvm-first="false" id="helloSyncServiceReference"
interface="com.alipay.sofa.rpc.samples.invoke.HelloSyncService" unique-id="">
<sofa:binding.bolt>
<sofa:global-attrs type="sync" timeout="3000" callback-ref="" callback-class="" address-wait-time="1000"
connect.num="1" check="false" connect.timeout="1000" filter="" generic-interface=""
idle.timeout="1000"
idle.timeout.read="1000" lazy="false" loadBalancer="" registry="" retries="1"
serialize-type=""/>
<sofa:route target-url="xxx:12200"/>
<sofa:method name="hello" callback-class="" callback-ref="" timeout="3000" type="sync"/>
</sofa:binding.bolt>
</sofa:reference>

属性说明

属性

名称

默认值

备注

id

ID

自动生成

-

jvm-first

是否优先本地

true

-

interface

服务接口(唯一标识元素)

-

不管是普通调用和返回调用,这里都设置实际的接口类。

unique-id

服务标签(唯一标识元素)

-

-

type

调用方式

sync

callback、sync、future、oneway

filter

过滤器配置别名

-

List

registry

服务端注册中心

-

List

method

方法级配置

-

说明同上。

serialize-type

序列化协议

hessian2

-

target-url

直连地址

-

直连后注册。

generic-interface

泛化接口

-

-

connect.timeout

建立连接超时时间

3000(cover 5000)

-

connect.num

连接数

1

-

idle.timeout

空闲超时时间

-

-

idle.timeout.read

读空闲超时时间

-

-

loadBalancer

负载均衡算法

random

-

lazy

是否延迟建立长连接

false

-

address-wait-time

等待地址获取时间

-1

取决于实现,可能不生效。

timeout

调用超时时间

3000(cover 5000)

-

retries

失败后重试次数

0

跟集群模式有关,failover读取此参数。

callback-class

callback 回调类

callback 才可用。

callback-ref

callback 回调类

callback 才可用。

配置的优先级

SOFARPC 里面的某些配置,例如调用超时 timeout 属性可以在服务提供方设置,也可以在服务调用方设置。这些配置的优先级从高到低排列如下:

  1. 线程调用级别设置。

  2. 服务调用方。

    • 方法级别设置。

    • Reference 级别设置。

  3. 服务提供方。

    • 方法级别设置。

    • Service 级别设置。