Elasticsearch核心概念

Elasticsearch 核心概念

  1. Cluster

    • 代表一个集群, 集群中有多个节点, 其中一个为主节点, 该节点可以通过选举产生。(主从节点只针对于集群内部)

    • 去中心化: 对于集群外来说无中心节点, 在外部看来, es集群在逻辑上是个整体, 与任何一个节点的通信 <=> 与整个 es 集群通信。

    • 集群内主节点的职责是负责管理集群状态, 包括管理分片的状态和副本的状态, 以及节点的发现与删除

    • 默认情况下 es 会自动发现同一网段内的节点, 自动组成集群

    • 集群状态查看: -http://192.168.x-xxx.xxx:9200/ cluster/health?pretty

  2. Shards

    • 代表索引分片, es 可以把一个完整的索引分成多个2分片, 优势是可以把一个大的索引拆分成多个, 分布到不同的节点上, 构成分布式搜索。

    • 注意: 分片的数量只能在索引创建前指定, 并且索引创建后不能更改。

    • 可以在创建索引库的时候指定:

      • curl -XPUT '192.168.x-xxx.xxx:9200/test1/' -d' {"settings":{"number_of_shards":3}}'
    • 默认一个索引库有5个分片: number_of_shards: 5

  3. Replicas

    • 代表索引副本, es可以给索引设置副本

    • 副本的作用:

      • 提高系统的容错性, 当某个节点某个分片苏怀或丢失时可以从副本中恢复
      • 提高 es 的查询效率, es 会自动对搜索请求进行负载均衡
    • 可以在创建索引库时指定

      • curl -XPUT '192.168.x-xxx.xxx:9200/test2/' -d' {"settings":{"number_of_replicas":2}}'
    • 默认是一个分片有1个副本 (总共有两片): number_of_replicas: 1

  4. Recovery

    • 代表数据恢复(数据重新分布), es 在有节点加入或退出时会根据机器的负载对索引分片进行重新分配, 挂掉的节点重新启动时也会进行数据恢复。
  5. Gateway

    • 代表 es 索引的持久化存储方式, es 默认是先把索引存放到内存中, 当内存满了时再持久化到硬盘。
    • 当该 es 集群关闭再重新启动时就会从 gateway 中读取索引数据。
    • es 支持多种类型的 gateway, 有本地文件系统(default), 分布式文件系统, Hadoop 的 HDFS 和 amazon 的 s3 云存储服务
    • 如果需要将数据落地到hadoop 的 hdfs 需要先安装插件 elasticsearch/elasticsearch-hadoop
  6. Discovery.zen

    • 代表 es 的自动发现节点机制

    • es是一个基于 p2p 的系统, 它先通过广播寻找存在的节点, 再通过多播协议来进行节点之间的通信, 同时也支持点对点的交互。

    • 如果是不同网段的节点如何组成es集群?

      • 禁用自动发现机制: discovery.zen.ping.multicast.enabled: false
      • 设置新节点被启动时能够发现的主节点列表: discovery
  7. Transport

    • 代表 es 内部节点或集群与客户端并的交互方式, 默认内部是使用 tcp 协议进行交互, 同时它支持http协议 (json 格式)、thrift、servlet、memcached、zeroMQ 等的传输协议(通过插件方式集成)。

你可能感兴趣的:(Elasticsearch核心概念)