es工作原理及如何构建集群

Posted mr.杰瑞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es工作原理及如何构建集群相关的知识,希望对你有一定的参考价值。

ES

搜索引擎与mysql

mysql搜索一个词 %查询条件%
es:天然的分布式 api对外接口,提供数据写入(java写的占用内存大)
solr: api接口对外,
sphinx: 基于sql的全文检索

es安装

docker镜像

docker pull elasticsearch:7.6.1

es配置 elasticsearch.yml

#es集群名称
cluster.name:elasticsearch-cluster
#节点名称
node.name:es-master-10
#
network.host:0.0.0.0
#es部署在对应服务器的ip
network.publish_host:180.200.7.10

http.port:9200
transport.tcp.port:9300
http.cors.enabled:true
http.cors.allow-origin:"*"
#标识为是否可以成为主节点
node.master:true
node.data:true
#集群间的节点信息(每个es节点至少需要200M内存)
discovery.zen.ping.unicast.hosts:
["180.200.7.10:9300","180.200.7.11:9300","180.200.7.12:9300"]
discovery.zen.minimum_master_nodes:1
#初始化的时候确定  节点对象是谁
cluster.initial_master_nodes:es-master-10

docker-compose.yml

environment:
  "ES_JAVA_OPTS=-Xms512m -Xmx512m"

每个es节点200M内存

es机制

  1. 分片结构:这个索引一共有6个分片,3个shard分片集,每个shard有1个replica副本集,所有一个就有6个分片集,es是基于Lucene内核的,这6个分片集,就是Lucene内核
  2. 分片分布:3个shard会自动分布在3台服务器上,每台服务器上分布的分片数量是一样多,这个均衡分布式es内部机制完成的,shard对应的replica是不会在同一台机器上面的,shard1是不可能和replica1放在一台机器上的,这样一台机器崩溃了,还有备胎在其他机器上
  3. 主从节点,es-node1为master节点,es-node2和es-node3为从节点,主节点负责管理,集群范围内的所有变更,例如增加,删除索引,或者增加,删除节点等,但是主节点并不处理文档级别的增删改查。

如果有三个节点,有一个几点挂了,任意两个节点的数据组合起来是完整的。

es增删改查

持续更新~~

以上是关于es工作原理及如何构建集群的主要内容,如果未能解决你的问题,请参考以下文章

es工作原理及如何构建集群

ES(六) ElasticSearch搜索原理

DRBD 安装配置工作原理及故障恢复

MongoDB分片集群机制及原理

DRBD安装配置工作原理及故障恢复

Day123.ElasticSearch:CAP定理集群搭建架构原理及分片倒排索引面试题