elasticsearch并发控制
elasticsearch,使用乐观锁实现并发控制,通过对每个文档的_version字段。请求的时候如果version不一致,则会操作失败。CAS。
elasticsearch重要配置
/config/elasticsearch.yml
node.master:true 是否作为是主节点候选,协调者
node.name 名字,默认有个文档自动出名字
node.data:true 是否存储数据,master一般不存储。一般既不是master也不作为处理者的。就作为负载均衡用的借点。
index.number_of_shards:5 分片,分布在各个节点上,分片越多,进行数据索引越快。启动时设置后,该参数就不可以修改
index.number_of_replicas:1 副本数量,用于复制数据。默认每个分片都有一个副本,副本越多。可以提高搜索的速度。可以去寻找副本,负载均衡,可以修改。
elasticsearch组件
cluster:集群,同一个网段内,的elasticsearch的多个节点,自动组成一个集群。通过http://...:9200/_cluster/health?pretty.查看集群状态
master:主节点,管理分片的状态和副本的状态,和借点的发现和删除。作为协调作用。主节点通过选举得到。从外部看。是去中心化的架构。类似zk
worker:干lucene的活的节点
elasticsearch概念
shards分片:把一个索引,拆分成多个索引。分布到各个节点。实现索引的分布式。分片越多,可以提高索引的速度。
replicas副本:提高容错,和提高搜索的负载均衡。
recovery恢复:数据重新分配,触发时机,在worker加入和退出,或者重启的时候,对索引进行重新分配。
gateway:索引的持久化方式。索引一开始在在内存,内存满的时候,做持久化。默认持久化到本地硬盘。还可以配置成持久化到,HDFS和S3。
discovery.zen:自动发现机制。在同一个网段内,自动组成一个集群。如果在不同网段。需要禁用自动发现机制。在新节点加入的时候,需要配置需要连接的节点
transport:内部节点之间相互通信和服务端和客户端之间的交互方式,默认是tcp。也可以通过配置插件来更改传输方式。