概念
Elasticsearch是Java语言开发的分布式的查询系统,它的每一个节点(每一个运行实例)都是一个基于Lucene的查询引擎,把Lucene用Netty封装成服务。
Lucene使用的是倒排索引的结构,如下图:
Elasticsearch存在哪些不足
查询分离选用Elasticsearch虽然能解决一些问题,但也要认识到它的不足:
1)用Elasticsearch存储查询数据时有一定延时,深度分页不能自由跳页,会有丢数据的可能性。
2)主数据量越来越大后,写操作慢,当数据量上亿的时候,插入会有问题。
3)主数据和查询数据不一致时,这里的查询数据同步到最新数据会有一定的延时,大约为2秒。某些业务场景下用户可能无法接受这个延时,特别是跟钱有关的场景。