Skip to content

coke-playground/batch-gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BatchGateway

考虑这样一个场景,某个服务在处理请求时需要独占一个硬件设备,如果每次向该设备发起一个请求,会消耗一定量的资源,且该请求处理完成前不能向其发送新的请求;如果每次批量向该设备发起多个请求,随着这一批请求个数的增加,每个请求平均消耗的资源会不断降低,直到批量请求个数达到某个上限。

本项目实现了一个智能网关,接收客户端发来的单个请求,收集一定数量后批量发送给后端服务,以达到节约资源的目的。在收集请求的过程中,已经到达的请求不会被立即处理,越早收到的请求等待的时间也会越长。为了避免过多的等待,每个批次收到第一个请求后会启动计时,当到达超时时间后即使该批次请求数量未达到预期,也会立即开始执行。若此类请求本身耗时较长,额外等待的时间不会给用户带来不便,通过仔细调整批次的大小、批次内等待的时间等参数,便可以实现大大降低资源开销的目的。

构建环境

GCC >= 13

LICENSE

Apache 2.0

About

聚合多个任务并批量执行的智能网关示例

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published