01
背景
需求要根据商家名称、经纬度对商家列表进行地理位置检索和全文检索,目前这部分数据是缓存在 MongoDB 上,虽然说 MongoDB 支持全文索引,但是对于中文检索,MongoDB 似乎做的还不是非常好,线上也会经常出现查询超时的情况。所以经过考虑研究后,决定改用 Elasticsearch 作为搜索引擎。目前线上的百万数据需要同步到 Elasticsearch,那么如何能够安全又快速的实现大数据量的同步呢?
02
方案验证
测试数据量:200w
方案一:单线程同步
线程数 | 耗时 |
1 | 1h |
单线程跑对于应用来说是非常安全的,但是在时间效率上,确实不太能容忍。
方案二:多线程
把同步数据分成多份,使用多线程同步