更新时间:2020-02-18 16:40
配置项 | 类型 | 说明 | 默认值 |
---|---|---|---|
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>
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.255
和 11.0.0.0~11.255.255.255
内的才会选择。
说明:SOFAStack 平台的内网地址均绑定在 eth0 网卡上,推荐直接使用
rpc_bind_network_interface=eth0
配置。如果应用运行在其它非 SOFAStack 平台上,请查看运行机器的内网地址自行斟酌。查看机器地址的命令:Windows 系统为ipconfig
;Mac/Linux 系统为ifconfig
。
在 application.properties
文件中使用以下选项配置 TR 线程池信息:
com.alipay.sofa.rpc.bolt.thread.pool.core.size
:最小线程数,默认 20com.alipay.sofa.rpc.bolt.thread.pool.max.size
:最大线程数,默认 200com.alipay.sofa.rpc.bolt.thread.pool.queue.size
:队列大小,默认 0TR 采用了 JDK 中的线程池 ThreadPoolExecutor
。当核心线程池扩张时,先涨到最小线程数大小。当并发请求达到最小线程数后,请求被放入线程池队列中。队列满了之后,线程池会扩张到最大线程数指定的大小。如果超过最大线程数则会抛出 RejectionException
异常。
详见 日志说明。
在文档使用中是否遇到以下问题
更多建议
匿名提交