全部产品

配置说明

更新时间:2021-02-09 15:11:55

本文详细介绍配置说明信息。

配置项

类型

说明

默认值

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:

  1. rpc_bind_network_interface

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

  2. 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 异常。

性能日志打印阈值配置

详见 日志说明