ES分布式架构

ES的架构遵循其基本概念: 一个采用Restful API 标准的高扩展和高可用性的实时数据分析

特性:

  • 高扩展: 体现在ES添加节点非常简单, 新节点无需做复杂的配置,只要配置好集群信息将会被集群自动发现
  • 高可用: ES是分布式的,每个节点都有备份,所以宕机一两个节点也不会出现问题,集群会通过备份进行自动复盘
  • 实时性: 使用倒排索引来建立存储结构,搜索效率高

ES设计层级介绍:

第一层: Gateway

ES支持索引快照的存储格式, 默认先将索引存放到内存中, 当内存满了之后再持久化到本地磁盘。gateway对索引快照进行存储,当ES关闭在启动时, 他就会从这个gateway中读取索引数据。支持的格式有: 本地的Local FileSystem、 分布式的 Shared FileSystem、 Hadoop的文件系统HDFS、 Amazon 的S3

第二层: Lucene框架

ES是基于Lucene框架开发的

第三层:ES数据的加工处理方式

  • Index Module(创建index模块)
  • Search Module(搜索模块)
  •  Mapping(映射)
  • River:ES的一个数据源,运行在ES集群内部的一个插件,主要用来从外部获取异构数据,然后在ES中创建索引, 如: RabbitMQ、 Twitter River

第四次: ES发现机制、脚本

        Discovery 是ES自动发现节点的模块, Zen Discovery 和 EC2 Discovery。Zen Discovery 的作用相当于zookeeper 注册中心, 它从功能上可以分为两部分: (1)集群刚启动是选择主节点或新加入集群的节点发现当前集群的Master; (2)选则主节点后完成Master 和 Folower的相互探活。

Scripting 是脚本执行功能, 有这个功能很方便对查询出来的数据进行加工处理。

3rd Plugins表示ES直接安装第三方插件, 如IK分词器、es-sql等

第五层: ES交互方式

支持Thrift、Memcached、Http三种协议, 默认使用http传输协议

第六城: ES的API支持模式

RestFull 风格的API接口标准。 ES作为分布式集群,客户端到服务端, 节点与节点间的通信有TCP和HTTP通信协议, 底层实现为netty框架。

ES分布式架构解析:

1、分片机制:

将文本数据切割成n个小文本存储在不同的节点, 减少大文件存储在单个节点上对设备带来的压力

2、分片的副本

在集群中某个节点宕机后,通过副本可以快速对缺失数据进行复盘

3、集群发现机制

在当前启动一个ES进程后, 在启动第二个ES进程时,这个进程作为一个node会自动发现集群并加入, 前提是所有node必须配置一套集群信息

4、shard负载均衡

例如现在有10个分片(shard),集群中有三个节点, ES会进行均衡分配,以保持整体请求的负载均衡

5、扩容机制

  • 垂直扩容: 用新机器替换已有的机器, 服务器数量不变,容量增加
  • 水平扩容: 直接增加新机器, 服务器数量和容量都增加

6、rebalance

增加或减少节点时会自动负载均衡

7、主节点

主节点的主要负责集群操作的相关内容, 如创建、删除索引, 跟踪哪些节点时集群的一部分,决定分片与节点的分配。稳定的主节点对集群的健康非常重要。

8、节点对等

每个节点都能接受请求, 每个节点接收到请求后能把该请求路由到相关数据的其它节点上, 接受原始请求的节点负责采集数据并返回给客户端。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值