流量控制

应用场景

当DSF节点发布服务后,如果不限制访问流量,在实际生产中可能出现对某个服务或方法有过多的连接,消耗过多系统资源,影响服务正常功能。通过流量控制,可以保障服务的访问数,从而保证服务的正常运行。
说明:
超过了流控阈值的访问请求会被拒绝,并返回异常。

  • 流控类型
    DSF提供以下流控方式:
    并发流控:用于控制接入服务的线程数,其中的阈值代表线程数量。
    TPS流控:控制的是单位时间内被调用的次数。

简介

并发流控

一个服务中可以有多个方法,DSF服务端可根据实际需要选择对服务设置并发流控,或对服务中的方法设置并发流控。
服务级流控:服务端流控数通过服务端Spring配置中指定exporter属性“executes”设置,代表并发处理总量。若不设置,则默认为“0”,表示不流控。

  • 服务端流控配置样例如下:




  • 方法级流控
    除了可以给服务设置并发访问量,还可以为服务中具体的方法设置并发访问量。

配置方法如下:
通过exporter下的子标签指定方法级参数配置(可选操作)。其中name为方法名(必填);executes为服务端流控,流控值只能在服务端指定有效。

服务端配置代码样例如下:

 
 
 

说明: 如果服务级和方法级同时配置流控值,以方法级流控值为准。

  • 流控参数化
    流控配置的“executes”参数支持参数化。
    说明: 参数的结构为 [服务名].execute , 例如:“demo.service.execute”。

流控可以配置成以下方式:

然后在“dsf.dynamic.properties”中配置“demo.service.execute”的值。

==============================================================

TPS流控

背景信息
一个服务中可以有多个方法,DSF服务端可根据实际需要选择对服务设置并发流控,或对服务中的方法设置并发流控。

全局设置
在“dsf.properties”文件中,配置

服务级流控
服务端流控数通过服务端Spring配置中指定exporter属性“executes”设置,代表并发处理总量。若不设置,则默认为“0”,表示不流控。

服务端流控配置样例如下:





方法级流控
除了可以给服务设置并发访问量,还可以为服务中具体的方法设置并发访问量。

配置方法如下:

通过exporter下的子标签指定方法级参数配置(可选操作)。

其中name为方法名(必填);executes为服务端流控,流控值只能在服务端指定有效。

服务端配置代码样例如下:

 
 
 
 

说明:
如果服务级和方法级同时配置流控值,以方法级流控值为准。

你可能感兴趣的:(日常遇到的问题,流量控制)