集群中一台机器刚启动的一段时间(称之为“预热期”)内,如果请求过多可能会影响机器性能和正常业务。框架提供一种功能,将处于预热期的机器的请求转发到集群内其它机器,过了预热期之后再恢复正常。
预热转发功能是指机器在启动完成后的“一段时间”内将其接收的请求转发至集群内的其它机器,等过了这段时间后再正常接收请求。这段时间内接收的请求既可以全部转发至其它机器,也可以按照一定比例转发,比如 80% 的请求转发出去,20% 自身系统处理。
与 RPC 压测转发不同的是,RPC 预热转发仅适用于应用启动后的一段时间,而压测转发则是长期生效。
注意事项
要使用预热转发功能,您需要特别注意以下特别要求。
服务端在同一台主机上启动时,预热转发不生效。
先启动的服务还在预热中时,预热转发不生效。
先启动的服务没有配置预热转发时,后启动的服务不会转发到没配置预热转发的机器。
所有预热转发的机器,BOLT 端口必须一致。
RPC 转发配置
配置的方式有两种:
直接转发到 IP
rpc.transmit.url = x.x.x.x
不论何时都直接转发到
x.x.x.x
和rpc.transmit.url=address:x.x.x.x
有同样效果。配置预热与权重
rpc.transmit.url=weightStarting:0.3,during:60,weightStarted:0.2,address:x.x.x.x,uniqueId:core_unique
weightStarting
:预热期内的转发权重或概率,RPC 框架内部会在集群中随机找一台机器以此权重转出或接收。during
:预热期的时间长度,单位为秒。weightStarted
:预热期过后的转发权重,将会一直生效。address
:预热期过后的转发地址,将会一直生效。uniqueId
:同 appName 多集群部署的情况下,要区别不同集群可以通过配置此项区分。指定一个自定义的系统变量,保证集群唯一即可。core_unique
是一个application.properties
的配置,可以动态替换。
在 application.properties
中可以配置转发请求超时时间,如下所示: rpc_transmit_url_timeout_tr=8000
。 单位为 ms,默认为 10000 ms。
在文档使用中是否遇到以下问题
更多建议
匿名提交