首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
The Go Programming Language
›
http://golang.org/
›
Go Playground
Go Projects
›
Revel Web Framework
广告
V2EX
›
Go 编程语言
Facebook DataLoader 的 Go 语言实现
sophos
·
sysulq
·
74 天前
· 1313 次点击
这是一个创建于 74 天前的主题,其中的信息可能已经有所发展或是发生改变。
DataLoader 是一个通用工具,用于应用程序的数据获取层,为各种后端提供一致的 API ,并减少对服务器的请求次数。
特性
仅 200 多行代码,易于理解和维护。
100% 的测试覆盖率,无 bug 且可靠。
基于泛型,可用于任何类型的数据。
使用 hashicorp/golang-lru 来缓存已加载的值。
可用于批处理和缓存多个请求。
对相同的请求进行去重,减少请求次数。
支持 OpenTelemetry ,使用 OpenTelemetry Link 追踪批处理请求。
仓库地址
https://github.com/sysulq/dataloader-go
7 条回复
•
2024-08-08 19:00:47 +08:00
1
securityCoding
74 天前
是实现了一套 signleflight+cache 吗?
2
sophos
OP
74 天前 via iPhone
@
securityCoding
最核心的是 batch :-)
3
novaline
74 天前
别造轮子了
https://github.com/graph-gophers/dataloader
4
zzhaolei
74 天前
@
novaline
这个也一年没更新了,稳定不
5
sophos
OP
74 天前
@
zzhaolei
@
novaline
只需要简单的 batch 和 cache 功能,就用你发的这个没问题
如果需要 LRU+同批次请求去重+跨请求链路追踪,就可以考虑我这个了 ;-)
6
haierspi
68 天前
@
sophos
实现了 signleflight 么?
7
sophos
OP
67 天前 via iPhone
@
haierspi
实现了,理论上比 singleflight 效果更好 :)
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
3614 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms ·
UTC 10:30
·
PVG 18:30
·
LAX 03:30
·
JFK 06:30
Developed with
CodeLauncher
♥ Do have faith in what you're doing.