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机制
- 分片结构:这个索引一共有6个分片,3个shard分片集,每个shard有1个replica副本集,所有一个就有6个分片集,es是基于Lucene内核的,这6个分片集,就是Lucene内核
- 分片分布:3个shard会自动分布在3台服务器上,每台服务器上分布的分片数量是一样多,这个均衡分布式es内部机制完成的,shard对应的replica是不会在同一台机器上面的,shard1是不可能和replica1放在一台机器上的,这样一台机器崩溃了,还有备胎在其他机器上
- 主从节点,es-node1为master节点,es-node2和es-node3为从节点,主节点负责管理,集群范围内的所有变更,例如增加,删除索引,或者增加,删除节点等,但是主节点并不处理文档级别的增删改查。
如果有三个节点,有一个几点挂了,任意两个节点的数据组合起来是完整的。
es增删改查
持续更新~~
以上是关于es工作原理及如何构建集群的主要内容,如果未能解决你的问题,请参考以下文章