【发布时间】:2014-01-12 19:26:53
【问题描述】:
我写了一个程序,批量插入到 Elasticsearch 大约 3000 个。问题是我需要在执行批量插入请求之前将这些对象转换为 json。但是 json 转换有一个很大的缺点,它正在成为我整个计算的瓶颈。
任何人都可以提出一种在java中将对象转换为json的超快速方法。我的代码如下所示:
private String getESValueAsString(ElasticSearchValue elasticSearchValue) throws JsonProcessingException {
ElasticSearchValue prevValue = null;
if (stateType == StateType.OPAQUE) {
prevValue = (ElasticSearchValue) elasticSearchValue.getPrevious();
}
elasticSearchValue.setPrevious(null);
ObjectMapper om = new ObjectMapper();
Map<String, Object> props = om.convertValue(elasticSearchValue, Map.class);
if (stateType == stateType.OPAQUE) {
props.put("previous", prevValue);
}
return om.writeValueAsString(props);
}
【问题讨论】:
-
您的问题中的风暴部分在哪里?
-
@Chiron:我发现了这个问题。这是由于每个对象都在创建新的 ObjectMapper
标签: java serialization elasticsearch apache-storm jsonserializer