全部产品

配置说明

更新时间:2020-02-18 16:40:41

配置项 类型 说明 默认值
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 地址进行服务调用。如果开发者所处的工作空间没有配置中心,则需要指定服务提供方地址进行调用,具体参见 路由与配置中心

  1. application.properties: run_mode=TEST
  2. <!-- 服务应用方配置 -->
  3. <sofa:reference ...>
  4. <sofa:binding.bolt>
  5. <global-attrs test-url="localhost:12200" />
  6. </sofa:binding.bolt>
  7. </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 异常。

性能日志打印阈值配置

详见 日志说明