摘要: 4. 性能优化 4.1 写入速度优化 4.1.1 增大translog flush间隔 配置项:index.translog.durability 默认值是request,也就是每次写入完成后马上进行刷盘。这实际上是影响ES写入性能最大的因素。但只有这样,才能保证每个写操作都是安全的 如果系统可以忍 阅读全文
posted @ 2021-09-26 10:36 PrimaBruceXu 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 3.7 ES中的缓存 Elasticsearch在运行过程中会使用到各种各样的缓存,如Query cache、Request cache、page cache、fielddata。这里主要讨论Query cache 和 Request cache 3.7.1 Shard Request Cache 阅读全文
posted @ 2021-09-26 10:35 PrimaBruceXu 阅读(2061) 评论(0) 推荐(0) 编辑
摘要: 3.5 索引恢复流程 在ES中,索引有5中恢复的方式,具体方式和用途如下所示。这里我们主要关注的是Peer Recovery,这也是故障恢复使用的方式 类型 描述 EmptyStoreRecoverySource 从新的副本中恢复 ExistingStoreRecoverySource 从现有的磁盘 阅读全文
posted @ 2021-09-26 10:33 PrimaBruceXu 阅读(671) 评论(0) 推荐(0) 编辑
摘要: 3.4 Elasticsearch的数据一致性 3.4.1 PacificA算法 Elasticsearch的数据存储模型基于的是主从模式,其具体实现中借鉴了微软的PacificA算法的一些思想理念。这里我们先简单介绍一下PacificA算法 1)特点 设计了一个通用和抽象的复制框架,模型容易验证正 阅读全文
posted @ 2021-07-14 11:12 PrimaBruceXu 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 3.2 master选举机制 3.2.1 选举算法 1)bully算法 核心思想 假定所有的节点都具有一个可以比较的ID,通过比较这个ID来选举master 流程说明 节点向所有比自己ID大的节点发送选举信息(election),告诉他们我选你 如果收到了回复消息(alive),这说明有人比自己“资 阅读全文
posted @ 2021-07-14 11:10 PrimaBruceXu 阅读(679) 评论(0) 推荐(2) 编辑
摘要: 3.1 分片 3.1.1 文档路由到分片 ES为了实现分布式的搜索,会将索引划分为数个主分片和副本。那么,当我们查询一个文档时,ES怎么知道这个文档存储在哪个分片上呢?当我们存储一个分片时,ES又该如何安排它存储在那个分片上呢? 实际上,这个过程是根据这个公式来决定的: ​ shard = hash 阅读全文
posted @ 2021-07-14 11:09 PrimaBruceXu 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 2. 基础入门 2.1 重要概念 2.1.1 集群和节点 1)cluster Elasticsearch集群是由一个或多个节点组成,通过其集群名称来进行唯一标识。节点在搜索到集群之后,通过判断自身的 cluster.name 来决定是否加入该集群 2)node 节点就是单个的Elasticsearc 阅读全文
posted @ 2021-07-14 11:05 PrimaBruceXu 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1 简介 1.1 前世今生 前世(简化封装 Lucene ) ​ 2004年有一个以色列小伙子名字叫谢伊·班农(ShayBanon)他成亲不久来到伦敦。因为当时他的夫人正好在伦敦学厨师。初来乍到,也没有找到工作,于是班农就打算写一个叫作iCook的小程序来管理和搜索菜谱。一来练练手方便找工作;二来这 阅读全文
posted @ 2021-07-06 18:56 PrimaBruceXu 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 7 Zuul 7.1 是什么 Zuul包含了对请求的路由和过滤两个最主要的功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。Zuul和Eureka进行整合,将Zuul自身注册为E 阅读全文
posted @ 2021-04-12 17:13 PrimaBruceXu 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 6 Hystrix 6.1 是什么 官方介绍:https://github.com/Netflix/Hystrix/wiki 在现代的分布式系统中,通常一个服务会依赖多个其他的服务 如图所示是正常情况下的服务 当发生了某些错误时 当只有一个发生错误的时候,我们的服务器完全可以负载其他的正常服务 但是 阅读全文
posted @ 2021-04-12 17:12 PrimaBruceXu 阅读(65) 评论(0) 推荐(0) 编辑