> 文章列表 > ElasticSearch第十八讲 ES-Master节点职责和ES是如何做到数据实时性的

ElasticSearch第十八讲 ES-Master节点职责和ES是如何做到数据实时性的

ElasticSearch第十八讲 ES-Master节点职责和ES是如何做到数据实时性的

Elasticsearch Master 节点的职责

  • 由主节点负责ping 所有其他节点,判断是否有节点已经挂掉
  • 创建或删除索引
  • 决定分片在节点之间的分配

稳定的主节点对集群的健康是非常重要的。虽然主节点也可以协调节点,路由搜索和从客户端新增数据到数据节点,但最好不要使用这些专用的主节点。一个重要的原则是,尽可能做尽量少的工作。

对于大型的生产集群来说,推荐使用一个专门的主节点来控制集群,该节点将不处理任何用户请求。

  • 协调节点(Coordinator Node):该节点只处理路由请求,处理搜索,分发索引文件,相当于一个只能的负载均衡器,协调节点将请求分发给存储数据的Data Node。每个Data Node在本地执行请求,并将请求结果返回给Cooridinator Node 。协调节点收集完数据后,将每个节点的数据合并为单个全局结果。
  • 数据节点(Data Node):存储索引数据的节点,主要对文档进行增删改查、聚合等操作。数据节点对cpu、内存、io要求比较高,在优化的时候需要监控数据节点的状态,当资源不够的时候,需要再集群中添加新的节点。

ES 数据实时性

一个Index由若干段组成,搜索的时候按段搜索,我们索引一条段后,每个段会通过fsync 操作持久化到磁盘,而fsync 操作比较耗时,如果每索引一条数据都做这个full commit(rsync)操作,提交和查询的时延都非常之大,所以在这种情况下做不到实时的一个搜索。

针对这个问题的解决是在Elasticsearch和磁盘之间引入一层称为FileSystem