go 处理超过8G的大json文件,数据是ES查询后使用 -> data.json中,数据是内网数据,写入文件为了写入测试环境的ES,用来调试程序,模拟真实的生产环境,没办法真实数据和mork数据差别太大
工具很重要
找了一下开源的json库。
fastJson可以直接处理原始json valyala/fastjson: Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection
读写分离,异步处理,批量插入es数据
这个就是go的协程,不多说了
优化
- es struct 大对象,sync.pool缓存,put之前 reset
- 写入es使用高性能工具,es dump 避免程序瓶颈(要处理json文件)