1、ES如何实现分布式高并发全文检索?为什么要实现集群?
ES核心存放是索引。
由于在单台ES服务器节点上,随着业务量的发展索引文件慢慢增多,会影响到效率和内存存储问题。
如果ES实现了集群的话,会将单台服务器节点的索引文件使用分片技术,分布式存放在多个不同的物理机器上。
从而可以实现高可用、容错性等。
分片技术:将数据拆分成多台节点进行存放。
2、简单介绍ES分片Shards分片技术?ES是如何解决高并发?
ES是一个分布式全文检索框架,隐藏了复杂的处理机制,内部使用分片机制、集群发现、分片负载均衡请求路由。
Shards分片:代表索引分片,ES可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,
分布到不同节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
Replicas分片:代表索引副本,ES可以设置多个索引的副本,副本的作用一是提供系统的容错性,
当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高ES的查询效率,
ES会对自动搜索请求进行负载均衡。
number_of_shards: 5 主分片
number_of_replicas: 1 副分片
在ES中每一个主分片都会对应一个副分片,如果已经定义好了主分片的数量,就不能再改主分片的数量。
3、为什么ES主分片对应的备份分片不在同一台节点存放?
每一个主分片为了实现高可用,都会有对应的备份分片,主分片对应的备份分片不能不能存放同一台服务器上,主分片可以和其他备份分片存放在同一node节点上。
注意:对应的主的分片和备的分片不能存放在同一node节点上。
4、索引的主分片定义好后为什么不能作修改?
5、ES如何实现高可用容错方案?