1、全局有序
一个Topic下的所有消息都需要按照生产顺序消费。
此时要求topic只有1个partion,使用1个消费者,且单线程消费模型。
1、Zookeeper是一个基于内存的分布式协调框架。其暴漏一些简单元语,基于此可以synchronization、configuration maintenance、group and naming。
2、关键特性
ES分页查询指定页时,需要从头查起,即需要查询出前置页 + 当前页的数据,然后返回当前页的数据。以操作文件举例,例如要取文件的第41行到50行,需要执行head -n 50 file | tail -n 10。所以使用from…size进行深分页查询时必然会消耗性能。
1)分页查询语法
ES的集群规模如果较大时,可以考虑设置专用主结点,设置参数可参考ES分片和副本。配置了参数后的结点被称为*Master-eligible node*,即候选主结点。这些候选主结点之间会通过选举,投票出一个主结点。
网络上的有些服务提供者(如消息队列,ElasticSearch,Redis,Zookeeper等)需要通过水平扩展的方式来扩展其计算能力,存储能力,故障容错能力。
摘自:动态更新索引
一个 Lucene 索引 我们在 Elasticsearch 称作分片 。一个 Elasticsearch 索引 是分片的集合。 当 Elasticsearch 在索引中搜索的时候, 他发送查询到每一个属于索引的分片(Lucene 索引),然后像 执行分布式检索 提到的那样,合并每个分片的结果到一个全局的结果集。
ES官方文档-Update API中提到ES6.7.0版本前使用version
字段进行并发控制,而6.7.0开始使用if_seq_no,if_primary_term
进行并发控制。
倒排索引是适用于全文检索的一种索引结构,ES使用的正是这种结构。把一段需要建立倒排索引的文本(document)进行分词,然后建立词(term)到文本(document)的一对多的映射关系。这种由document内容反向索引documentId的映射结构,称为反向索引。