蚂蚁金服SOFA-Boot整合SOFA-RPC(下篇)

本文详细介绍了SOFA-Boot如何整合SOFA-RPC的高级功能,包括XML和Properties配置参数,如超时时间、线程池定制、预热权重和自动故障剔除。通过配置XML和Properties,可以实现服务调用的优化和故障防护,提升系统的稳定性和性能。
摘要由CSDN通过智能技术生成

前言

上文介绍了SOFA-RPC 的几种调用方式,包括单向调用、同步调用、Future调用、回调,引入了泛化调用和过滤器。本文将对 SOFA-RPC 的高级功能,包括参数配置、自定义线程池、预热权重和自动故障剔除等。

12738336-b2dba7c5be63daba
image

正文

1. 参数配置

SOFABoot RPC Starter 提供了方便的参数设置方式。这些参数目前可以分为两个部分。一部分是如端口,注册中心地址等配置,这类配置在 application.properties 中。另一部分是如超时时间等配置,这类配置在 XML 中。

XML 配置

  • 调用超时时间

如下是设置超时时间的方式,单位为 ms ,如果调用超过了这个时间则会抛出异常。服务端和客户端都可以设置,以客户端的超时时间设置优先。默认客户端为 3000 ,目前对 bolt,rest,dubbo 生效。

<sofa:binding.bolt>
    <sofa:global-attrs timeout="5000"/>
</sofa:binding.bolt>
  • 获取地址等待时间

如下是设置获取地址等待时间,单位为ms。在启动时如果服务引用方等待超过了这个时间则不会再等待地址,会继续启动。客户端设置,默认为-1,表示会一直等待到地址为止。目前对 bolt,rest 生效。

<sofa:binding.bolt>
    <sofa:global-attrs address-wait-time="30000"/>
</sofa:binding.bolt>
  • 建立连接超时时间

如下是设置建立连接超时时间,单位为 ms 。在建立连接时如果耗时超过了这个时间则会抛出异常。客户端设,默认为 5000。目前对 bolt,rest 生效。

<sofa:binding.bolt>
    <sofa:global-attrs connect.timeout="30000"
</sofa:binding.bolt>
  • 权重

如下是设置权重。客户端在发起调用时,如果采用的算法是随机调用,则会根据该权重来进行随机。服务端设置,默认为 100。目前对 bolt 生效。

<sofa:binding.bolt>
    <sofa:global-attrs weight="200"/>
</sofa:binding.bolt>
  • lazy 连接

默认情况下客户端在注册中心推送地址到客户端时,就立即建立好连接,这个过程通常是在第一次调用之前进行的。如果设置服务引用的属性 lazy 为 true,客户端在第一次调用时才和所要调用的远程地址建立连接。默认为 false。

如下设置 lazy 连接方式,将 lazy 属性设为 true。目前支持 bolt 和 dubbo 协议。

<sofa:reference id="lazyServiceReferenceBolt" interface="com.ostenant.sofa.rpc.example.lazy.LazyService">
    <sofa:binding.bolt>
        <sofa:global-attrs lazy="true"/>
    </sofa:binding.bolt>
</sofa:reference>
  • check 属性

默认情况下客户端在启动时,服务引用不要求存在可用的地址和连接。如果设置服务引用的属性 check 为 true,客户端在启动时,服务引用会检查是否存在对应的地址和连接,如果不存在会抛出异常。默认为 false。

如下设置 check 连接方式,将 check 属性设为 true。目前支持 bolt 和 dubbo 协议。

&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值