es性能优化
1、java、scala集合转换性能问题
ESutil工具类代码使用java语言编写,调用工具类的代码使用scala语言编写,scala代码中使用的是mutable.map集合存储数据,在调用工具类时,使用
scala.collection.JavaConverters将scala集合转换为java集合,经测试,该操作性能非常低,将scala中的mutable.map和list 切换到java.util.list,问题解决
2、bulk条数 和 并行度对es的影响
bulk 条数过大时,并行写入es会报es_rejected_execution_exception,原因是es建立索引的速度跟不上bulk的请求速度,导致es拒绝写入请求,出现该异常会导致数据丢失
写入es的并行度为32,bulk单次写入条数为10000条性能最佳
3、esutil使用scala.mutable.HashMap[String,AnyRef]写入数据
使用scala代码编写esutil代码,写入单条数据使用mutable.map封装,数据id可以正常写入es,但是HashMap集合中的数据未正常写入,切换为java.util.Map集合后,数据正常写入