分布式环境 如何合并请求

fffq · 2024-9-4 15:10:47 · 57 次点击
golang 的 singleflight 是不是只作用在单进程?
举报· 57 次点击
登录 注册 站外分享
4 条回复  
2Nfree 小成 2024-9-4 17:43:24
没搞懂场景是什么样的,singleflight 是只能作用在单进程的,如果要是到多个进程要用分布式锁吧,etcd ,zookeeper?
showB1 小成 2024-9-4 17:44:36
分布式环境? request_1 打到 pod_1,request_2 打到 pod_2 ,这种合并起来?
你这合并的规则不清晰。。。
1 、前端限制达到相同的请求只发一次达到“合并”效果
2 、不同的 c 端发来的请求,假设你的规则是参数一样就合并?那直接套一层缓存是不是能达到类似的效果呢?
3 、缓存不行,就要合并,那就在网关搞事情喽、统一、快捷。
4 、singleflight 防止击穿?加上呗、几行代码
asAnotherJack 小成 2024-9-4 18:06:50
多少服务啊,如果单纯为了防击穿,只合并单进程内的也足够了吧
crysislinux 小成 2024-9-4 18:20:59
分布式要搞的话可以借助 redis setnx 加个简单的锁。获取锁的进程得到数据之后写入 redis cache 然后 publish 一下,别的进程自己去取。。一般应用很难有这个需求吧。。我们倒是刚好有这需求,应用完全依赖第三方的数据,然后每天有限制调用量,我们就用这种办法减少调用量。
返回顶部