比如 a 服务需要从 b 服务获取几十万的数据处理后生成自己的业务数据,如果 b 服务直接从数据库中一次性查出来返回,对内存的压力就很大。
现在的方案是使用分页,每次最多 1 万条记录,获取一批处理一批,把整个业务处理的时间拉长了。
想知道还有没有更好的办法
举报· 264 次点击
登录 注册 站外分享
16 条回复  
kaf 小成 2024-10-17 09:47:29
流格式数据
lifei6671 小成 2024-10-17 09:47:03
一般情况下是通过下面方式实现的:
1 、建立只读线下备库,通过从库的方式从线上库实时同步数据,不能用于线上系统读,只能用于线下业务大批量读。
2 、建立只读从库,和主库实时同步,只能进行线上系统只读。
3 、通过 binlog 实时建立分析宽表,一般用来汇总各个业务方数据,建立大宽表,支持线下业务分析已经大批量查询等。
ZZ74 小成 2024-10-17 09:41:58
搞那么麻烦干啥,导出文件写入共享目录,调用接口通知 喂 数据我放到 xx 目录下的 x 文件里了
landerwong99 小成 2024-10-17 09:34:23
要么就离线近源处理,来个服务直接调 B 库的只读库,
要么就流式处理,使用 kafka 之类的。
Plutooo 小成 2024-10-17 09:21:12
把 B 服务当成直接从数据库查不也是存在一样的问题么,还是说担心 B 服务的内存占用
Wh1t3zZ 小成 2024-10-17 09:13:42
流式数据处理
povsister 小成 2024-10-17 09:05:27
你这种 case 如果数据量持续上升,应该用 spark 这种离线作业,或者压根不应该拆分服务。
SmartTom 小成 2024-10-17 09:02:18
a 服务直接做多数据源直连 b 服务数据库/doge
ymmud 初学 2024-10-17 08:58:30
才几十万条,服务之间类似于流式处理直接拉过去就行了
12下一页
返回顶部