应用维度配置

本文介绍 SOFARPC 可用的配置项和常见配置。

基础配置项说明

您可以根据自身环境的需求,在 application.properties 文件中添加以下配置项:

配置项

类型

说明

默认值

sofa_runtime_local_mode

BOOLEAN

本地优先调用开关。

false

run_mode

STRING

RPC 运行模式。

rpc_tr_port

INTEGER

TR 端口号。

12200

rpc_bind_network_interface

STRING

服务器绑定固定网卡。

rpc_enabled_ip_range

STRING

服务器绑定本地 IP 范围。

rpc_min_pool_size_tr

INTEGER

TR 服务器线程池最小线程数。

20

rpc_max_pool_size_tr

INTEGER

TR 服务器线程池最大线程数。

200

rpc_pool_queue_size_tr

INTEGER

TR 服务器线程池队列大小。

0

com.alipay.sofa.rpc.bolt.port

INTEGER

Bolt 端口号。

12200

com.alipay.sofa.rpc.bolt.thread.pool.core.size

INTEGER

Bolt 服务器线程池最小线程数。

20

com.alipay.sofa.rpc.bolt.thread.pool.max.size

INTEGER

Bolt 服务器线程池最大线程数。

200

com.alipay.sofa.rpc.bolt.thread.pool.queue.size

INTEGER

Bolt 服务器线程池队列大小。

0

com.alipay.sofa.rpc.rest.port

INTEGER

SOFAREST 端口号。

8341

rpc_transmit_url

STRING

预热与权重配置。

rpc_transmit_url_timeout_tr

INTEGER

预热调用超时时间,单位 ms。

0

rpc_profile_threshold_tr

INTEGER

RPC 服务处理性能日志打印阈值,单位 ms。

300

本地优先调用模式

当本地启动多个 SOFA 应用时,要使这几个应用能优先相互调用,而不需要经过软负载过程,只需要在 application.properties 中加入 sofa_runtime_local_mode=true 即可。

但是 sofa_runtime_local_mode 这个配置依然需要依赖于配置中心推送下来的地址。拿到服务提供方地址列表后,服务消费方会优先选择本地的 IP 地址进行服务调用。如果开发者所处的工作空间没有配置中心,则需要指定服务提供方地址进行调用,具体参见 路由与配置中心

application.properties: 

run_mode=TEST

<!--服务应用方配置-->
<sofa:reference ...>
     <sofa:binding.bolt>
         <global-attrs test-url="localhost:12200"/>
     </sofa:binding.bolt>
</sofa:reference>

IP 或网卡绑定

SOFARPC 发布服务地址的时候,只会选取本地的第一张网卡的 IP 发布到配置中心,如果有多张网卡(如在 SOFAStack 平台上,有内网 IP 和外网 IP),则需要设置 IP 选择策略。

SOFARPC 提供了两种方式选择 IP:

  • rpc_bind_network_interface

    指定具体的网卡名进行选择,如:rpc_bind_network_interface=eth0

  • rpc_enabled_ip_range

    指定 IP 范围进行绑定,格式:IP_RANGE1:IP_RANGE2,IP_RANGE。例如,rpc_enabled_ip_range=10.1:10.2,11 表示 IP 范围在 10.1.0.0~10.2.255.25511.0.0.0~11.255.255.255 内的才会选择。

    说明

    SOFAStack 平台的内网地址均绑定在 eth0 网卡上,推荐直接使用 rpc_bind_network_interface=eth0 配置。如果应用运行在其它非 SOFAStack 平台上,请查看运行机器的内网地址自行修改。查看机器地址的命令如下:

    • Windows 系统:ipconfig

    • Mac 和 Linux 系统:ifconfig

TR 线程池配置

application.properties 文件中使用以下选项配置 TR 线程池信息:

  • com.alipay.sofa.rpc.bolt.thread.pool.core.size:最小线程数,默认 20。

  • com.alipay.sofa.rpc.bolt.thread.pool.max.size:最大线程数,默认 200。

  • com.alipay.sofa.rpc.bolt.thread.pool.queue.size:队列大小,默认 0。

TR 采用了 JDK 中的线程池 ThreadPoolExecutor。当核心线程池扩张时,先涨到最小线程数大小。当并发请求达到最小线程数后,请求被放入线程池队列中。队列满了之后,线程池会扩张到最大线程数指定的大小。如果超过最大线程数则会抛出 RejectionException 异常。