Skip to content

abusizhishen/do-once-while-concurrent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

do-once-while-concurrent

解决并发时对同一资源的重复请求、缓存穿透、数据重复计算,如第三方接口重复请求、redis、数据库重复请求,避免对第三方依赖造成过大压力,以至于服务崩溃,影响到其他服务,同时配合分布式锁,可以解决分布式幂等问题

根据请求标识,对单机同一时刻同一资源的重复请求做限制,只有一个请求等获得锁,其他请求均处于阻塞状态,直到获得执行权限的线程执行结束,释放信号。此时所有请求均能得到数据。

刚发现一位大佬写的,go-singleflight 思路是一样的,用waitgroup实现的通知更好,chan相对麻烦还容易出错 建议使用大佬的

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages