Elasticsearch:基础概念
一、什么是Elasticsearch
Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是Elastic Stack的核心。它与Kibana相结合,为以下 Elastic 解决方案提供支持:
-
可观察性
- 日志、指标和跟踪:收集、存储和分析来自应用程序、系统和服务的日志、指标和跟踪。
- 应用程序性能监控 (APM):监控和分析业务关键型软件应用程序的性能。
- 真实用户监控 (RUM):监控、量化和分析用户与 Web 应用程序的交互。
- OpenTelemetry:重复使用您现有的仪器,使用 OpenTelemetry 标准将遥测数据发送到 Elastic Stack。
-
搜索加粗样式
- 全文搜索:使用倒排索引、标记化和文本分析构建快速、相关的全文搜索解决方案。
- 向量数据库:存储和搜索向量化数据,并使用内置和第三方自然语言处理 (NLP) 模型创建向量嵌入。
- 语义搜索:使用同义词、密集向量嵌入和学习到的稀疏查询文档扩展等工具了解搜索查询背后的意图和上下文含义。
- 混合搜索:使用最先进的排名算法将全文搜索与向量搜索相结合。
- 构建搜索体验:向应用程序或网站添加混合搜索功能,或在组织的内部数据源上构建企业搜索引擎。
- 检索增强生成 (RAG):使用 Elasticsearch 作为检索引擎,为一系列用例提供更相关、最新或专有的数据来补充生成式 AI 模型。
- 地理空间搜索:使用地理空间查询搜索位置并计算空间关系。
-
安全
- 安全信息和事件管理 (SIEM):收集、存储和分析来自应用程序、系统和服务的安全数据。
- 端点安全:监控和分析端点安全数据。
- 威胁搜寻:搜索和分析数据以检测和应对安全威胁。
二、分片
一个索引可以存储超出单个节点硬件限制的大量数据。比如,一个具有10亿文档数据的索引占据1TB的磁盘空间,而任一节点都可能没有这样大的磁盘空间。后者单个节点处理搜索请求,响应太慢。为了解决这个问题,Elasticsearch提供了将索引划分成多分的能力,每一份就称之为分片。当创建一个索引的时候,可以指定分片的数量。每隔分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。分片的重要性,主要有两方面:
- 允许水平分割、扩展内容容量。
- 允许分片之上进行分布式的、并行的操作,进而提高性能和吞吐量。
至于一个分片怎样分布,文档怎样聚合和搜索请求,是完全右Elasticsearch管理的,对于作为用户来说,这个是透明的,无需关心。
三、副本(Replicas)
在一个网络、云环境里,失败随时都可能发生,在某个分片、节点处于离线或者消失了,这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。为了此目的,Elasticsearch允许你创建分片的一份或多份拷贝,这个拷贝就叫做复制分片(副本)。
复制分片之所以重要,有两个主要原因:
- 在分片或者节点失败的情况下,提供了可用性。所以副本分片不能与主分片在同一个节点上。
- 扩展你的搜索量、吞吐量,因为搜索可以在所有的副本上并行运行。
总之,每个索引可以被分成多个分片。一个索引也可以被复制 0 次(意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。
分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制的数量,但是你事后不能改变分片的数量。
默认情况下,Elasticsearch 中的每个索引被分片 1 个主分片和 1 个复制,这意味着,如果你的集群中至少有两个节点,你的索引将会有 1 个主分片和另外 1 个复制分片(1 个完全拷贝),这样的话每个索引总共就有 2 个分片, 我们需要根据索引需要确定分片个数。
四、分配Allocation
将分片分配给某个节点的过程,包括分配主分片或者副分片。如果是副本,还包括从主分片复制数据的过程。这个过程是由master节点完成的。
五、系统架构
当一个节点被选举成为主节点时, 它将负责管理集群范围内的所有变更,例如增加、
删除索引,或者增加、删除节点等。 而主节点并不需要涉及到文档级别的变更和搜索等操作,所以当集群只拥有一个主节点的情况下,即使流量的增加它也不会成为瓶颈。 任何节点都可以成为主节点。我们的示例集群就只有一个节点,所以它同时也成为了主节点。
作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道
任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。
六、故障转移
当集群中只有一个节点在运行时,意味着会有一个单点故障问题——没有冗余。 幸运的是,我们只需再启动一个节点即可防止数据丢失。当你在同一台机器上启动了第二个节点时,只要它和第一个节点有同样的 cluster.name 配置,它就会自动发现集群并加入到其中。但是在不同机器上启动节点的时候,为了加入到同一集群,你需要配置一个可连接到的单播主机列表。之所以配置为使用单播发现,以防止节点无意中加入集群。只有在同一台机器上
运行的节点才会自动组成集群。
如果启动了第二个节点,集群将会拥有两个节点 : 所有主分片和副本分片都已被分配 。
七、水平扩容
怎样为我们的正在增长中的应用程序按需扩容呢?当启动了第三个节点,我们的集群将会拥有三个节点的集群 : 为了分散负载而对分片进行重新分配 。
相关文章:
Elasticsearch:基础概念
一、什么是Elasticsearch Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是…...
【快速实践】类激活图(CAM,class activation map)可视化
类激活图可视化:有助于了解一张图像的哪一部分让卷积神经网络做出了最终的分类决策 对输入图像生成类激活热力图类激活热力图是与特定输出类别相关的二维分数网格:对任何输入图像的每个位置都要进行计算,它表示每个位置对该类别的重要程度 我…...
从零开始自搭SpringBoot项目 -- Qingluopay项目工程介绍
从零开始自搭项目 – QingLuoPay 一,为什么要从零开始自搭项目 首先在介绍这个项目之前先介绍一下我为什么要选择从零自搭项目,而不是跟着网上哪些视频等做项目。 之前的很长一段时间我也都是在网上找一些做项目的视频就包含黑马的(神领物…...
使用 Jupyter Notebook:安装与应用指南
文章目录 安装 Jupyter Notebook1. 准备环境2. 安装 Jupyter Notebook3. 启动 Jupyter Notebook4. 选择安装方式(可选) 二、Jupyter Notebook 的基本功能1. 单元格的类型与运行2. 可视化支持3. 内置魔法命令 三、Jupyter Notebook 的实际应用场景1. 数据…...
.NET框架用C#实现PDF转HTML
HTML作为一种开放标准的网页标记语言,具有跨平台、易于浏览和搜索引擎友好的特性,使得内容能够在多种设备上轻松访问并优化了在线分享与互动。通过将PDF文件转换为HTML格式,我们可以更方便地在浏览器中展示PDF文档内容,同时也更容…...
使用 httputils + chronicle-bytes 实现金融级 java rpc
1、认识 chronicle-bytes Chronicle-Bytes 是一个类似于 Java NIO 的 ByteBuffer 的高效字节操作库,但它提供了许多扩展功能。这个项目由 OpenHFT 开发并维护,旨在提供高性能、低延迟的数据处理解决方案。Chronicle-Bytes 设计用于高频率交易和其他对性…...
开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现推理加速的正确姿势-利用KOR框架实现结构化输出(七)
一、前言 目前,大语言模型已升级至Qwen2.5版本。无论是语言模型还是多模态模型,均在大规模多语言和多模态数据上进行预训练,并通过高质量数据进行后期微调以贴近人类偏好。在本篇学习中,将集成vllm实现模型推理加速,现在,我们赶紧跟上技术发展的脚步,去体验一下新版本模…...
利用大语言模型解决推理任务
利用大语言模型(Large Language Models, LLMs)来解决推理任务是目前人工智能领域中的一个重要研究方向。大语言模型,如GPT系列(包括ChatGPT)和BERT等,具有强大的自然语言理解和生成能力,已经能够…...
修复OpenLinkSaas客户端在使用AtomGit账号时页面崩溃
问题描述:当一个新的AtomGit用户登录OpenLinkSaas客户端后出现了页面崩溃。 从浏览器控制台来看,是gitNoticeList出现了null。 查看代码后发现是请求atomGit api是返回的一个null的列表 接下来我们加下保护性的代码,来兼容null或undefine的情…...
如何使用大语言模型进行事件抽取与关系抽取
诸神缄默不语-个人CSDN博文目录 文章目录 1. 什么是事件抽取与关系抽取?2. 示例:使用大语言模型进行事件抽取与关系抽取 1. 什么是事件抽取与关系抽取? 事件抽取是指从文本中识别出与某些“事件”相关的信息。这些事件通常包括动作、参与者、…...
WebRTC线程的启动与运行
WebRTC线程运行的基本逻辑: while(true) {…Get(&msg, …);…Dispatch(&msg);… }Dispatch(Message *pmsg) {…pmsg->handler->OnMessage(pmsg);… }在执行函数内部,就是一个while死循环,只做两件事,从队列里Get取…...
Unity3D ILRuntime开发原则与接口绑定详解
引言 ILRuntime是一款基于C#的热更新框架,使用IL2CPP技术将C#代码转换成C代码,支持动态编译和执行代码,适用于Unity3D的所有平台,包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术…...
grouped = df.drop(‘name‘, axis=1).groupby(‘team‘)
这行代码: grouped df.drop(name, axis1).groupby(team)的作用是首先删除 DataFrame 中的 name 列,然后按 team 列进行分组。以下是对每个部分的详细解释: 1. df.drop(name, axis1) df.drop(name, axis1) 这部分代码会从 DataFrame df 中…...
mysqll连接用时太长解决方法
1、连接用时太长分析 从客户端连接mysql服务器,时间长达10几秒,此为mysql的dns的反向解析造成,在局域网内如果都是用ip连接,可以通过在配置文件中添加skip-name-resolve,取消此功能,取消后,就不…...
Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询
作者:来自 Elastic Valentin Crettaz 了解 AutoOps 如何帮助你调查困扰集群的长期搜索查询以提高搜索性能。 AutoOps 于 11 月初在 Elastic Cloud Hosted 上发布,它通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。 Au…...
SpringCloud源码-Ribbon
一、Spring定制化RestTemplate,预留出RestTemplate定制化扩展点 org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration 二、Ribbon定义RestTemplate Ribbon扩展点功能 org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguratio…...
使用Python,pypinyin将汉字转为带音调,首字母等多种风格的拼音,自动学习生字词
使用Python,pypinyin将汉字转为带音调,首字母等多种风格的拼音,自动学习生字词 1. 效果图2. 安装及支持的音调分类3. 源码参考 这篇博客将介绍如何使用Python,pypinyin将汉字转为带音调的拼音,自动学习生字词ÿ…...
消防设施操作员考试题库及答案
一、单选题 1.根据国家标准《防火门》(CB1295~2008)的规定,门扇上带防火玻璃的防火门的代号为()。 A.s B.bl C.b D.l 答案:C 解析:根据初级教材238页,门扇上带防火玻璃的防火门的代号为b。 2.关于彩…...
算法:IMPACT通过微生物特征分析可解释的微生物表型
文章目录 介绍框架代码参考 介绍 人类肠道微生物群由数万亿细菌组成,对健康和疾病有重大影响。通过现代技术的进步,高通量分析提供了增强我们对微生物组与复杂疾病结果之间联系的理解的潜力。然而,目前的微生物组模型缺乏微生物特征的可解释…...
2、zookeeper和kafka
zookeeper zookeeper基本知识 zookeeper:开源的分布式框架协调服务 zookeeper的工作机制 基于观察者模式设计的分布式结构,复制存储和管理架构当中的元信息,架构当中的应用接受观察者的监控,一旦数据有变化,通知对于…...
监控工具(Nagios)
2.4 Nagios 2.4.1 基础概念讲解 嘿,小伙伴们!我们已经见识过了Prometheus、Grafana和Zabbix的强大功能,现在是时候认识一下监控界的“老大哥”——Nagios了!Nagios是一款历史悠久的开源监控工具,虽然它可能没有像Zab…...
c++不够用知识补充-using namespace
感觉c的知识储备不够用了,忘记的再捡起来?! C之using namaspace;(未完)_namspace include-CSDN博客文章浏览阅读238次。初学C时,只要是程序都是用这个来打头。#includeusing namespace std;以前也不求甚解,知道随着对…...
奇异值分解SVD
线性变换 SVD在2*2矩阵 SVD推广到任意大小矩阵 去掉奇异值小的部分: 原始的时空矩阵模式1模式2模式3...
如何在 Windows 10/11 上录制带有音频的屏幕 [3 种简单方法]
无论您是在上在线课程还是参加在线会议,您都可能需要在 Windows 10/11 上录制带有音频的屏幕。互联网上提供了多种可选方法。在这里,本博客收集了 3 种最简单的方法来指导您如何在 Windows 10/11 上使用音频进行屏幕录制。请继续阅读以探索! …...
Linux centos7 docker安装 (yum快速安装)
Linux centos7 docker安装 (yum快速安装) 1. 查看内核1.1 内核升级操作(可选) 2. 部署docker2.1 卸载旧版本2.2 安装需要的软件包2.3 添加阿里云镜像源2.4 部署docker(可手动选择版本,默认安装最新版本&…...
深入Android架构(从线程到AIDL)_08 认识Android的主线程
目录 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程编辑 UI线程的责任: 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程 UI线程的责任: 迅速处理UI事…...
接受Header使用错Map类型,导致获取到的Header值不全
问题复现 在 Spring 中解析 Header 时,我们在多数场合中是直接按需解析的。例如,我们想使用一个名为 myHeaderName 的 Header,我们会书写代码如下:RequestMapping(path "/hi", method RequestMethod.GET) public Str…...
等保测评和密评的相关性和区别
等保测评和密评在网络安全领域均扮演着至关重要的角色,它们之间既存在相关性,又各具特色。 以下是对两者相关性和区别的详细阐述:相关性 1.法律基础:等保测评和密评都是依据国家相关法律法规开展的活动。 等保测评主要依据《网…...
朱姆沃尔特隐身战舰:从失败到威慑
前言 "朱姆沃尔特"号驱逐舰是美国海军雄心勃勃的项目,旨在重塑未来海战。它融合了隐身、自动化和强大火力,然而由于技术问题和预算超支,原计划建造32艘的目标被大幅缩减,最终只建造了三艘。该舰的设计特点包括“穿浪逆船…...
create-a-weather-app-using-flask-python
使用 Flask | Python 创建天气应用程序 原文:https://www . geesforgeks . org/create-a-weather-app-use-flask-python/ 先决条件: 烧瓶安装 Flask 是一个用 Python 编写的轻量级框架。它是轻量级的,因为它不需要特定的工具或库,并且允许快速的 web 开…...
BurpSuite2024.11
新增功能 2024 年 11 月 25 日,版本 24.11 此版本引入了站点地图过滤器 Bambdas、匹配和替换 Bambdas、用于 API 扫描的动态身份验证令牌,以及用于入侵者攻击的增强负载管理。我们还进行了多项用户体验改进、性能改进和一些错误修复。 使用 Bambdas 过…...
MyBatis-plus sql拦截器
因为业务需求,重新写了一套数据权限。项目中用的是mybtis-plus,正好MyBatis-Plus提供了插件数据权限插件 | MyBatis-Plus,那就根据文档来实现这个需求。 实现: 实现MultiDataPermissionHandler 首先创建MultiDataPermissionHan…...
springboot3 redis 批量删除特定的 key 或带有特定前缀的 key
在 Spring Boot 3 中与 Redis 一起使用时,可以通过 Redis 的命令来实现批量删除特定的 Key 或带有特定前缀的 Key。以下是实现方式和注意事项。 使用 RedisTemplate RedisTemplate 是 Spring Boot 提供的一个操作 Redis 的工具,支持各种 Redis 操作。 …...
若依框架(前后端分离)集成cas5.5
一、后端配置 1、添加cas依赖 在common模块pom添加spring-security-cas依赖: <!-- spring security cas--> <dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-cas</artifactId> &l…...
区块链方向学习路线
学习路线图 下面是登链社区给出的区块链开发者的学习路线图 学习路线建议 对于一个区块链方向的学习者而言,首先要了解的是区块链理论知识,当你了解了区块链的理论知识之后,下面有三个方向来学习,可以通俗的理解为区块链方向的后…...
【从零开始入门unity游戏开发之——C#篇40】C#特性(Attributes)和自定义特性
文章目录 前言一、特性(Attributes)基本概念二、自定义特性1、自定义特性代码示例:2、应用自定义特性:3、解释3.1 **AttributeUsage 特性**3.2 特性的命名3.3 **构造函数**:3.4 **属性**: 4、使用反射获取特…...
Unity2D无限地图的实现(简单好抄)
说明:本教程实现的是在2D游戏中玩家在游戏中上下左右移动的时候自动进行地图拼接的功能,如果你只想实现左右移动的无限地图,那么这篇博客也能起到一定参考作用。 思路 第一步: 创建一个10*10的2D游戏对象当做地图 第二步创建一个…...
OSPF特殊区域(open shortest path first LSA Type7)
一、区域介绍 1、Stub区域 Stub区域是一种可选的配置属性。通常来说,Stub区域位于自治系统的边界,例如,只有一 个ABR的非骨干区域。在这些区域中,设备的路由表规模以及路由信息传递的数量都会大量减少。 kill 4 5类type 传递1 …...
工程师了解的Lua语言
1、关于lua语言 lua语言是用于嵌入式领域当中的一门脚本语言,其实在大学期间,我也没有接触过这门语言,但是在未来的发展之路当中,需要用到这门语言,所以在我的知识库当中添加这门语言知识是必要而且重要的,…...
每日一学——日志管理工具(Graylog)
5.2 Graylog 5.2.1 输入输出配置 嘿,小伙伴们!今天我们要介绍的是Graylog——一款功能强大的日志管理工具。Graylog不仅可以帮助我们收集、存储和搜索日志数据,还可以通过丰富的插件系统进行扩展。让我们一起来看看如何配置Graylog来收集日…...
SQL Server中最大并行度详解
在 SQL Server 中,MAXDOP(Maximum Degree of Parallelism,最大并行度)是一个用于控制并行查询执行中最大可用 CPU 核心数的配置参数。通过设置 MAXDOP,你可以管理 SQL Server 在执行并行查询时使用多少个处理器核心&am…...
2453.学习周刊-2024年53周
封面 不要站在问题一边打败孩子,而是站在孩子一边打败问题,多从孩子的角度思考问题,帮助孩子一起解决问题 ✍优秀博文 SQL中历史数据处理实践指南新领导上任了,老员工该如何适应?主动接纳还是我行我素? ✍…...
硬件-射频-PCB-常见天线分类-ESP32实例
文章目录 一:常见天线1.1 PCB天线①蓝牙模块的蛇形走线-天线②倒F天线-IFA:③蛇形倒F天线-MIFA④立体的倒F天线-PIFA 1.2 实例示意图1.21 对数周期天线(LPDA):1.22 2.4GHZ的八木天线:1.23 陶瓷天线:1.24 外接天线: 二&…...
Golang的容器编排实践
Golang的容器编排实践 一、Golang中的容器编排概述 作为一种高效的编程语言,其在容器编排领域也有着广泛的运用。容器编排是指利用自动化工具对容器化的应用进行部署、管理和扩展的过程,典型的容器编排工具包括Docker Swarm、Kubernetes等。在Golang中&a…...
关于大一上的总结
大一上总结 前言 源于学长们都喜欢写总结,今晚也正好听见一首有点触动心灵的歌,深有感慨,故来此写下这篇总结 正文 1.暑假前的准备 暑假之前姑且还是学习了基本的C语法,大概是到了结构体的地方,进度很慢࿰…...
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
SpringBoot教程(三十二) | SpringBoot集成Skywalking链路跟踪 一、Skywalking是什么?二、Skywalking与JDK版本的对应关系三、Skywalking下载四、Skywalking 数据存储五、Skywalking 的启动六、部署探针 前提: Agents 8.9.0 放入 …...
iOS 11 中的 HEIF 图像格式 - 您需要了解的内容
HEIF,也称为高效图像格式,是iOS 11 之后发布的新图像格式,以能够在不压缩图像质量的情况下以较小尺寸保存照片而闻名。换句话说,HEIF 图像格式可以具有相同或更好的照片质量,同时比 JPEG、PNG、GIF、TIFF 占用更少的设…...
Python爬虫入门(1)
在互联网时代,数据成为了最宝贵的资源之一。Python作为一种功能强大的编程语言,因其简洁的语法和丰富的库支持,成为了编写网络爬虫的首选。本文将带你入门Python爬虫技术,让你能够从互联网上自动获取数据。 什么是爬虫࿱…...
GIT 企业级开发学习 1
本节主要命令: git init ls 不能列出 .git ls -a 列出 .git 1. 初始化 Git 仓库 git init • 初始化一个新的 Git 仓库,在当前目录下生成一个 .git 隐藏文件夹,用于存储版本控制信息。 2. 查看隐藏文件 ls -a • 使用 ls -a 显示隐藏文件…...
C# _ 数字分隔符的使用
总目录 一、数字分隔符是什么? _ 用作数字分隔符。可以将数字分隔符用于所有类型(二进制,十进制,十六进制)的数字文本。数字分隔符 _ 在编译时是被编译器忽略的,因此在语义上对数字结果没有任何影响。 二…...