Elasticsearch高可用和路由规则

2023-10-27

Lucene
  • 迄今为止最先进,性能最好的,功能最全的搜素引擎库。
Elasticsearch
  • 基于Apache Lucene 开源的搜素引擎,以Lucene为核心进行了封装,提供相关RestFul API 的调用方式,让使用更加简单有效。
ELK stack
  • 以Elasticsearch为核心组件,日志通过Logstash 进行解析和结构化的构造,然后输入Elasticsearch进行索引的创建和结构化的存储,前端展示通过Kibana对Elasticsearch结构化数据做聚合运算和出图展示。
  • Beat组件在ELK中担当日志收集终端的角色。代替之前logstash收集的功能,以速度快和性能好为其优势。
Elasticsearch集群和分片路由(高可用)
用es代替Elasticsearch
  • Es的集群很简单,只需要简单的配置就能启动构成工作集群。
elasticsearch.yml中集群名字一样即可,es之间自动发现节点。
  • 在数据进入后,es默认创建5个分片(0,1,2,3,4),集群状态为yellow。es会自动同步各个分片和其副本分片的数据。
API查看分片状态:
curl -XGET 192.168.59.63:9200/_cat/shards

API查看节点健康状态:
curl -XGET
192.168.59.63:9200/_cluster/health?pretty

API查看节点角色:
curl -XGET
192.168.59.63:9200/_cat/nodes?v

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6VZ5VP5-1590484076800)(http://ox0rewbep.bkt.clouddn.com/blog/180626/kcdK3443eC.png?imageslim)]

  • 再启动一个es的时候,es会默认创建一个副本分片,这个时候分片总数为10个
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5RCPsa0Q-1590484076801)(http://ox0rewbep.bkt.clouddn.com/blog/180626/ALCIlG5k9K.png?imageslim)]

  • 再启动一个es,es会自动均衡将分片自动加载到三台es中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7R5aKwhd-1590484076802)(http://ox0rewbep.bkt.clouddn.com/blog/180626/lIBEK0BJjF.png?imageslim)]

  • 这个时候模拟故障关掉一台es,丢掉的分片会在其他两台中找到,并恢复。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DioGAJ4U-1590484076804)(http://ox0rewbep.bkt.clouddn.com/blog/180626/ALCIlG5k9K.png?imageslim)]

  • es路由到分片的算法过程
shard= hash(routing)% number_of_primary_shards

routing是一个字符串,默认是索引的_id值,也可以自己定义。 
这个routing字符串通过哈希函数生成一个数字,然后除以主切片的数量得到一个余数(remainder),
余数的范围永远是0到number_of_primary_shards - 1,这个数字就是特定文档所在的分片。
  • 由上面可以看出,数据存在特定分区内,如果我们放数据的时候就指定好 routing值,查询的时候就可以直接到特定地点分片上查找,让查询变得高效得多
放数据 指定 routing
curl -XPUT 192.168.59.63:9200/test/doc/1?routing=a -d '{ "name": "1" }'

查数据 

curl -XGET '192.168.59.63:9200/test/_search?pretty&q=*:*&routing=a'  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch高可用和路由规则 的相关文章

随机推荐

  • Python如何生成词云(详细分析)

    前言 今天教大家用wrodcloud模块来生成词云 我读取了一篇小说并生成了词云 先看一下效果图 效果图一 效果图二 根据效果图分析的还是比较准确的 小说中的主人公就是 程理 所以出现次数最多 图中有两种模式 一种是默认的模式 另一种是自己
  • 【SpringMvc】从Servlet的HttpServlet到SpringMVC的DispathServlet到Springboot的RequestMapping

    1 0 众所周知 一个http请求到我们服务器 web容器 tomcat jetty servlet 就会约定俗成去访问webapp路径下的web xml配置文件 首先读取的是两个节点 listener 和 context param 监听
  • 自动化测试-selenium+python3+HTMLTestRunner

    案例介绍 使用selenium框架测试并输出测试报告 一 准备工作 1 编辑器 pycharm 2 安装selenium first step second step 3 导入HTMLTestRunner 用来生成测试报告的 注意 pyth
  • 细数6种垃圾回收器的区别, 快进来看看有没有你要用的

    文章目录 前言 一 垃圾回收算法 1 复制算法 2 标记 清除算法 3 标记 整理算法 4 分代算法 二 Serial收集器 三 Parallel Scavenge收集器 四 ParNew收集器 五 CMS收集器 1 GC流程 2 CMS的
  • stm32 USB CDC 不接电脑无程序一直在USB中断问题

    前些时间基于STM32CUBE 工具做了个用STM32F103的USB 接口 枚举成CDC的项目 接上电脑程序功能正常 但是在不接电脑时 程序一直在USB中断中 下在给大家分享一下我的解决方法 首先是在 stm32f1xx hal pcd
  • asp: AJAX Database

  • Python爬虫进阶:使用Scrapy库进行数据提取和处理

    在我们的初级教程中 我们介绍了如何使用Scrapy创建和运行一个简单的爬虫 在这篇文章中 我们将深入了解Scrapy的强大功能 学习如何使用Scrapy提取和处理数据 一 数据提取 Selectors和Item 在Scrapy中 提取数据主
  • python之UI自动化框架测试126邮箱(数据驱动)

    项目地址 https pan baidu com s 18XVd3IB SIQJygxUVdbuLA密码 74cm 目录和包介绍 Data目录 存放执行项目用例所需的数据文件 excel Conf目录 包含所有获取页面元素的定位表达式文件
  • python class函数解释

    init 是Python中的构造函数 构造函数用于初始化类的内部状态 为类的属性设置默认值 两个下划线开头的函数是声明该属性为私有 不能在类的外部被使用或访问 init 函数 方法 支持带参数类的初始化 也可为声明该类的属性 类中的变量 i
  • RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the

    RuntimeError Input type torch FloatTensor and weight type torch cuda FloatTensor should be the same or input should be a
  • IDEA的使用和快捷键

    从刚开始Eclipse到IDEA的不顺手 一点一点习惯上IDEA的使用 可能回去使用Eclipse估计会用不惯了 毕竟IDEA自带了很多工具maven git等工具 还有下边的一些窗口用着也还不错 大概记录一下自己在使用IDEA的过程和工作
  • 毕业项目SSM框架配置文件之applicationContext.xml

    applicationContext xml
  • 32. 最长有效括号

    32 最长有效括号 题目描述 给你一个只包含 和 的字符串 找出最长有效 格式正确且连续 括号子串的长度 示例1 输入 s 输出 2 解释 最长有效括号子串是 示例2 输入 s 输出 4 解释 最长有效括号子串是 示例3 输入 s 输出 0
  • C/C++中分离(detach)线程的陷阱

    C C 中分离 detach 线程的陷阱 版权声明 线程资源回收 pthread join pthread detach 什么时候分离线程会存在陷阱 方法论 既使用quick exit 又需要析构 PS 版权声明 本文为博主原创文章 未经博
  • QEventLoop 的使用

    背景 事件循环本质上就是一个无限循环 不停地去获取下一个事件 然后做出处理 直到 quit 事件发生 循环结束 QEventLoop QEventLoop 即 Qt 中的事件循环类 其中 exec 是启动事件循环 调用 exec 以后 调用
  • 在宿主机查看docker使用cpu、内存、网络、io情况

    使用命令 docker stats OPTIONS CONTAINER docker stats命令返回一个用于运行容器的实时数据流 要将数据限制到一个或多个特定的容器 可以指定一个由空格分隔的容器名称或ID的列表 您也可以指定一个已停止的
  • Guava缓存(一)基础

    1 概述 1 1 简介 Guava缓存 谷歌开源的一种本地缓存 使用本节点的内存来存储的 实现原理类似于ConcurrentHashMap 使用多个segments方式的细粒度锁 在保证线程安全的同时 支持高并发场景需求 同时支持多种类型的
  • linux并发服务器 —— IO多路复用(八)

    半关闭 端口复用 半关闭只能实现数据单方向的传输 当TCP 接中A向 B 发送 FIN 请求关闭 另一端 B 回应ACK 之后 A 端进入 FIN WAIT 2 状态 并没有立即发送 FIN 给 A A 方处于半连接状态 半开关 此时 A
  • 热门免费高效scrum敏捷项目管理工具

    Scrum中非常强调公开 透明 直接有效的沟通 这也是 可视化的管理工具 在敏捷开发中如此重要的原因之一 通过 可视化的管理工具 让所有人直观的看到需求 故事 任务之间的流转状态 可以使团队成员更加快速适应敏捷开发流程 Leangoo领歌
  • Elasticsearch高可用和路由规则

    文章目录 Lucene Elasticsearch ELK stack Elasticsearch集群和分片路由 高可用 Lucene 迄今为止最先进 性能最好的 功能最全的搜素引擎库 Elasticsearch 基于Apache Luce