es8使用版本7的Rest-High-Level-client失败
biltong 回复了问题 • 2 人关注 • 3 个回复 • 3433 次浏览 • 2024-09-13 17:12
构建Elasticsearch专家Bot的详细步骤指南
森 发表了文章 • 0 个评论 • 3393 次浏览 • 2024-06-26 23:22
构建Elasticsearch专家Bot的详细步骤指南
步骤1: 文档搜集
- 利用专业工具搜集Elasticsearch 8.13.2版本的官方文档,确保文档的完整性和准确性。如:Elasticsearch文档
步骤2: 知识库建立
- 在coze.cn平台上创建一个专门的知识库,命名清晰,便于管理和识别。
步骤3: 文档上传
- 将搜集到的Elasticsearch文档上传至新创建的知识库,确保文档格式适合后续的检索和分析。
步骤4: Bot创建
- 在coze.cn上创建一个新的Bot,命名为“Elasticsearch专家”,为其设定一个专业且引人注目的形象。
步骤5: 知识库配置
- 将步骤2中的知识库与新创建的Bot进行关联,确保Bot能够访问和利用这些文档资源。
步骤6: 功能插件集成
- 为Bot添加以下功能插件,以提供更全面的服务:
- 必应搜索引擎(Bing Web Search):扩展信息检索范围。
- 代码执行器(CodeRunner):实现代码的即时测试与验证。
- 微信搜索(WeChat Search):增加中文信息源的覆盖。
步骤7: 人设与回复逻辑定制
- 必应搜索引擎(Bing Web Search):扩展信息检索范围。
- 设定Bot的人设,明确其专业领域和能力,如:“我是Elasticsearch的专家,随时准备解答你的疑问。”
- 利用coze平台的AI技术,优化Bot的回复逻辑,确保其回答既准确又具有针对性。
步骤8: 测试与调整
- 在Bot设置完成后,进行全面的测试,确保其能够正确理解和回应各种查询。
- 根据测试反馈,调整Bot的交互逻辑和回答内容,以提高用户满意度。
步骤9: 发布与分享
- 完成所有设置和测试后,点击发布,使Bot正式上线。
- 通过Bot页面的商店功能,将你的“Elasticsearch专家”Bot分享给你的伙伴们,让他们也能享受到这一强大的学习工具。
步骤10: 持续优化与更新
- 定期回顾Bot的表现,根据用户反馈进行持续的优化和功能更新。
- 随着Elasticsearch版本的迭代,及时更新知识库内容,确保Bot提供的信息始终最新。
通过遵循这些步骤,你不仅能够构建一个功能全面的Elasticsearch专家Bot,而且能够确保它随着时间的推移不断进化,满足用户日益增长的需求。这将是一个不仅能提供文档查询,还能执行代码和搜索网络的智能助手,极大地提升你的Elasticsearch学习之旅。
极限网关助力好未来 Elasticsearch 容器化升级
INFINI Labs 小助手 发表了文章 • 0 个评论 • 3484 次浏览 • 2024-06-12 15:01
极限网关在好未来的最佳实践案例,轻松扛住日增百 TB 数据的流量,助力 ES 从物理机到云原生架构的改造,实现了流控、请求分析、安全管理、无缝迁移等场景。一次完美的客户体验~
背景
物理机架构时代
2022 年,好未来整个日志 Elasticsearch 拥有数十套服务集群,几百台物理机。这么多台机器耗费成本非常高,而且还要花费很大精力去维护。在人力资源有限情况下,存在非常多的弊端,运行成本高,不仅是机器折旧还有机柜等费用。
流量特征
这是来自某个业务线,如下图 1,真实流量,潮汐性非常明显。好未来有很多条业务线,几乎跟这个趋势都一致的,除了个别业务有“续报”、“开课”等活动特殊情况。潮汐性带来的问题就是高峰期 CPU、内存资源是可以消耗很高;低峰期资源使用量非常低,由于是物理架构,这些资源无法给其他业务线共享。
![图1](https://infinilabs.cn/img/blog ... /1.png)
图1
### 降本增效-容器化改造原动力
日志服务对成本的空前的压力促使我们推进 Elasticsearch 进行架构改造;如何改造,改造成什么样子,这两个问题一直是推进改造原动力。业界能够同时对水平扩展和垂直扩展就是 K8S,我们开始对 Elasticsearch 改造成能在 K8S 上运行进行探索,从而提升 CPU、内存利用率。
物理机时代,没办法把资源动态的扩缩,动态调配,资源隔离,单靠人力操作调度成本太高,几乎无法完成;集群对内存资源需求要比 CPU 资源大很多,由于机器型号配置是固定的,无法“定制”,这也会导致成本居高不下。所以,无论从那个方面来讲,容器化优势非常明显,既能够优化成本,也能够降低运维复杂度。
## ES 容器化改造
### 进行架构升级重点难点- API 服务
改造过程,我们遇到了很多问题,比如容器 ES 版本和物理机 ES 版本不一致,如何让 ES API 能够兼容不同的 ES 版本,由于版本的不兼容,导致无法直接使用原有的 tribenode 进行服务,怎么提供一个高可用的 Elasticsearch API 服务。我们考虑到多个方面,比如使用官方推荐的 proxy 模式、第三方服务等进行选择,经过多方面对比,选择了[极限网关](https://infinilabs.cn/products/gateway/) 进行 tribenode 替换。
### 原始 ES API 服务痛点
- API 访问没有流量控制
- 可观测性差,而且稳定性一般
- 版本兼容性差
### 物理机时代 API 架构
在物理机时代 ES 集群,API 架构如图 2,可以明显看到 tribe node 对所有 ES 集群的“侵入性”是非常大的,这就带来了很多问题,比较严重的就是单个集群对 ES tribenode 的影响和版本升级带来的不兼容问题。
![图2](https://infinilabs.cn/img/blog ... /2.png)
图2
### 混合时代 API 架构
通过图 3,我们可以看到,极限网关对于版本兼容性很好,能够适配不同的版本。因此,最终选择极限网关作为下一代 ES API 服务方。
![图3](https://infinilabs.cn/img/blog ... /3.png)
图3
### 里程碑:全部 ES 集群容器化
在 2023 年 3 月份,通过 Elastic 官方 ECK 模式,完成全部日志 ES 集群容器化改造,拥有数百节点,1PB+ 数据存储,每日新增数据 100T 左右。紧接着,除了日志服务外,同时支持了好未来多条业务线。
![图4](https://infinilabs.cn/img/blog ... /4.png)
图4
## 极限网关实践
下面主要讲述了,为什么选择极限网关,以及极限网关在好未来落地、应用这些内容。
### 为什么选择极限网关?
**学习成本低**
我们可以从文档中看到极限网关,其架构简洁,语法简单,直观易懂。学习成本比较低,上手非常快,对新手友好。
**性能强悍**
经过压测,发现极限网关速度非常快,且针对 Elasticsearch 做了非常细致的优化,能成倍提升写入和查询的速度。
**安全性高**
支持多种认证方式,最简单的账号密码认证,可以给自定义多个账户密码,大大简化了 Elasticsearch 的安全设置,同时,还可以支持 LDAP 安全验证。
**跨版本支持**
我们容器化改造过程需要兼容不同版本的 Elasticsrearch,极限网关针对不同的 Elasticsearch 版本做了兼容和针对性处理,能够让业务代码无缝的进行适配,后端 Elasticsearch 集群版本升级能够做到无缝过渡,降低版本升级和数据迁移的复杂度,非常匹配我们的业务场景。
**灵活可扩展**
可灵活对每个请求进行干预和路由,支持路由的智能学习,内置丰富的过滤器,通过配置动态修改每个请求的处理逻辑,也支持通过插件来进行扩展,满足我们对流量的控制,尤其是限流、用户、IP 等这些功能非常实用。
### 启用安全策略-为 API 服务保驾护航
**痛点**
在升级之前使用 tribe 作为 API 服务提供后端,几乎相当于裸奔,没有任何认证策略;另外,tribe 本身的稳定性也有问题,官方在新版本逐渐废弃这种 CCS(跨集群搜索),期间出现多次服务崩溃。
### 极限网关解决问题
极限网关通过,“basic_auth” 插件,提供最基本的安全校验,使用起来非常方便;同时,极限网关提供 LDAP 插件,可以接入公共的 LDAP 服务,对所有的访问用户进行校验,安全策略对所有的用户生效,不用担心因为 IP 问题泄漏数据等。
**强大的过滤功能**
在使用 ES 集群过程中,许多场景,需要对请求进行控制、限制等操作。在这方便,感受到了极限网关强大的产品力。比如下面的两个场景
**对异常流量进行限流**
- 支持对 IP 限流
- 支持对 hostname 限流
- 支持 header 限流
**对异常用户进行封禁**
当 Elasticsearch 是通过 Basic Auth 或者 LDAP 方式来进行身份认证的时候,`request_user_filter` 过滤器可用来按请求的用户名信息来进行过滤。操作起来也非常简单,只需要 `request_user_filter` 这一个过滤器。
```ymal
- request_user_filter:
include:
- "elastic"
exclude:
- "Ryan"
```
总结来讲,主要有这些方面的功能:
![图5](https://infinilabs.cn/img/blog ... /5.png)
图5
### 优秀的可观测性
**痛点**
改造前经常为看不到直观的数据指标感到头疼,查看指标需要多个地方同时打开,去筛选,查找,非常繁琐,付出的成本非常大。为此,大家都再考虑如何优化这种情况,无奈优先级比较低,一直没有真正的投入时间去优化这块。
**完美解决**
使用了极限网关,通过收集请求日志,非常清晰的收集到想要的数据,具体如下:
- 总体方面:
- 流量曲线
- 状态码占比
- 缓存统计
- 每台网关请求流量
- 细节方面:
- 打印每次请求语句
- 可以查看请求到具体 ES 节点流量
- 可以查看过滤器的列表
通过下图,我们可以从管理视角直观的看到各种信息,这对于管理员来讲,省时省力,方便快捷。
![图6](https://infinilabs.cn/img/blog ... /6.png)
图6
### 意外收获:无缝迁移业务 Elasticsearch 上云
由于前期日志业务上云,受到非常好的反馈,多个业务线期望能够上云上服务,达到降本增效的目的。
**支持双写**
数据可以通过极限网关同时写入两个 ES 集群,能够保障数据完全一致,安全可靠。
**无缝切换**
切换很丝滑,影响非常小,能够让外界几乎感受不到服务波动。
![图7](https://infinilabs.cn/img/blog ... /7.png)
图7
通过使用极限网关,自建 ES 集群可以无缝的迁移上云,在整个迁移的过程中,两套集群通过网关进行了解耦,在迁移的过程中还能实现版本的无缝升级,极大降低了迁移成本,提高迁移效率,多次验证服务稳定可靠。
### 极限网关流量概览
这是其中一套极限网关的流量统计。用这部分数据进行巡检,一目了然,做到全局的掌控,提高感知力度。
![](https://infinilabs.cn/img/blog ... /8.png)
![图8](https://infinilabs.cn/img/blog ... /9.png)
图8
### 极限网关使用总结
极限网关提供一系列高性能和高可靠性的网关服务。使用这样的服务给我们带来以下好处:
1. **可观测性好**:极限网关可以动态的对 Elasticsearch 运行过程中请求进行拦截和分析,通过指标和日志来了解集群运行状态,这些指标可以用于提升性能和业务优化。
2. **增强安全性**:包含先进的安全机制,如 basicauth、LDAP 等支持,保护用户数据不受未授权访问和各种网络威胁的侵害。
3. **高稳定性**:通过冗余设计和故障转移机制,极限网关能够确保网络服务的高可用性,即使在某些组件发生故障时也能保持服务不中断,单版本最长服务超过 15 个月。
4. **易于管理**:通过提供 [INFINI Console](https://infinilabs.cn/products/console/) 简洁直观的管理界面,让用户能够轻松配置和监控网络状态,提升管理效率。
5. **客户支持**:良好的客户服务支持可以帮助用户快速解决使用过程中遇到的问题,提供专业的技术指导。
综上所述,极限网关为用户提供了一个高速、安全、稳定且易于管理的 ES 网关,适合对网络性能有较高要求的个人和企业用户。
## 未来规划
第一阶段,完成了日志 ES 集群,所有集群的容器化改造,合并,成功的把成本降低了 60%以上。这期间积累了丰富容器化经验,为业务 ES 集群上容器做了良好的铺垫;成本优势和运维优势吸引越来越多的业务接入到容器化 ES 集群。
### 提升 ES 集群效能--新技术应用&&版本升级
- 极限科技官方推荐的 [Easysearch](https://infinilabs.cn/products/easysearch/) 在压缩率,查询速度等等方面有很多的优势,通过长时间的测试稳定性,新特性,对比云原生的 ES 集群,根据测试结果,给“客户”提供多种选择,这也是工作重点之一。
- 我们当前使用的 ES 版本是 6.8,已经远远落后于官方版本,今年我们计划在选择合适的集群升级 ES 版本,拥抱更多官方提供的特性。
### 混合(多)云架构支持
随着越来越多的 ES 集群在机房的 K8S 集群部署,这里资源出现了紧张局面。 我们尝试在云上部署自建 ES 集群,弥补机房资源有限,无法大规模扩容,同时能够支持多活场景,满足更多客户的不同需求。混合云主要实现以下几种能力:
**1、扩缩容:满足不同业务灵活适配**
混合(多)云部署,可以让负载内部私有云 ES,同时部署到公有云,提升扩展 IT 基础设施不仅局限于 CPU、内存,还有存储。比如某一个业务要做活动,预估流量“大爆发”,需要提前准备大规模资源,在机房内根本来不及采购扩容支持,然而在公有云上就能很方便扩容、缩容。在云上搭建 ES 集群,设置满足需求的数量、容量、配置,配合极限网关路由策略,精准的把控流量流向。
![图9](https://infinilabs.cn/img/blog ... 10.png)
图9
**2、灾备:紧急情况快速部署,恢复 ES 集群读写**
当机房级别大规模故障,部分业务实现了多活,单一的机房故障不会影响其服务能力,而此时比如日志查看等仍有需求,为了满足这部分“客户”需求,可以在云上 K8S 集群,快速搭建 ES 集群,恢复日志读写功能。
![图10](https://infinilabs.cn/img/blog ... 11.png)
图10
参考文档:
- <https://infinilabs.cn/docs/latest/gateway>
- <https://www.elastic.co/guide/e ... gt%3B
作者:张华勋,前新浪 CDN 研发,工作主要涉及 Mysql、MongoDB、Redis、Elasticsearch、流量调度等组件和系统,以及运维自动化、平台化等工作。现就职于好未来。
## 关于好未来
好未来(NYSE:TAL)是一家以内容能力与科技能力为基础,以科教、科创、科普为战略方向,助力人的终身成长,并持续探索创新的科技公司。 好未来的前身学而思成立于 2003 年,2010 年在美国纽交所正式挂牌交易。好未来以“爱与科技助力终身成长”为使命,致力成为持续创新的组织。更多参见:<https://www.100tal.com/>
## 关于极限科技(INFINI Labs)
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:<https://www.infinilabs.cn>
![联系我们](https://www.infinilabs.cn/img/ ... us.png)
有没有es和大模型结合的案例,入门级别的,求分享
Charele 回复了问题 • 2 人关注 • 1 个回复 • 3919 次浏览 • 2024-06-16 15:48
es怎么分析内存问题
yingqi0906 回复了问题 • 5 人关注 • 7 个回复 • 4021 次浏览 • 2024-06-17 09:56
有些索引段合并时deletes_pct_allowed值不生效是什么原因呢?
Charele 回复了问题 • 2 人关注 • 2 个回复 • 4206 次浏览 • 2024-05-02 14:31
es query and fetch 2个操作数据可能不一致问题
Charele 回复了问题 • 2 人关注 • 1 个回复 • 3922 次浏览 • 2024-05-06 13:19
ES中会不会出现这个问题
emmning 回复了问题 • 2 人关注 • 2 个回复 • 4448 次浏览 • 2024-04-29 10:15
记某客户的一次 Elasticsearch 无缝数据迁移
yangmf2040 发表了文章 • 0 个评论 • 4823 次浏览 • 2024-04-02 14:16
背景
客户需要将 Elasticsearch 集群无缝迁移到移动云,迁移过程要保证业务的最小停机时间。
实现方式
通过采用成熟的 INFINI 网关来进行数据的双写,在集群的切换恢复过程中来记录数据变更,待全量数据恢复之后再追平后面增量数据,追平增量之后,进行校验确保数据一致再进行流量的切换。
总体流程
总体迁移流程如下:
- 客户业务代码,切流量,双写。(新增的变更都会记录在网关本地,但是暂停消费到移动云)
- 暂停网关移动云这边的增量数据消费。
- 迁移 11 月的数据,快照,快照上传到 S3;
- 下载 S3 的文件到移动云。
- 恢复快照到移动云的 11 月份的索引。
- 开启网关移动云这边的增量消费。
- 等待增量追平(接近追平)。
- 按照时间条件(如:时间 A,当前时间往前 30 分钟),验证文档数据量,Hash 校验等等。
- 停业务的写入,网关,腾讯云的写入(10 分钟)。
- 等待剩余的增量追完。
- 对时间 A 之后的,增量进行校验。
- 切换所有流量到移动云,业务端直接访问移动云 ES。
总体的迁移时间:
- 11 月备份时间(30 分钟)19 号开始
- 备份下载到移动云的时间(2-3 天)
- 备份恢复到移动云集群的时间(30 分钟)
- 11 月份增量备份(20 分钟)(双写开始)(21 号)
- 11 月份增量下载到移动云(6 小时)
- 11 月份增量恢复时间(20 分钟)
- 追增量数据(8 个小时产生的数据,需要 1 个小时)
- 校验比对(存量 1 个小时)
- 流量暂停,增量的校验(10 分钟)
- 切换(1 分钟)
总体流程如下示意图:
![](https://www.infinilabs.com/img ... ge.png)
ES 集群信息
- ES 版本 7.10.1
- 2个热节点 3个温节点 总数 1.9 TB
- 索引 1041, 分片2085
- 无自定义插件
- 有 update_bu_query 使用
- 有 delete_by_query 使用
- 吞吐量没有测试过,当前日增文档数 1 千多万,目标日增加上亿
迁移操作手册(参考)
环境
- 自建 ES 5.4.2
- 自建 ES 5.6.8
- 自建 ES 7.5.0
- 极限网关服务器 1
- 极限网关服务器 2
- 云端负载均衡 1 (监听 9200 端口,指向极限网关服务器 1/2 的 8000 端口)
- 云端负载均衡 2 (监听 9200 端口,指向极限网关服务器 1/2 的 8001 端口)
场景描述
若干个自建 Elasticsearch 集群需要平滑迁移到移动云,业务不停写、不做代码改动。
数据架构
通过将应用端流量走网关的方式,请求同步转发给自建 ES,网关记录所有的写入请求,并确保顺序在云端 ES 上重放请求,两侧集群的各种故障都妥善进行了处理,从而实现透明的集群双写,实现安全无缝的数据迁移。
![](https://www.infinilabs.com/img ... /2.jpg)
业务端如果已经部署在云上,可以使用云上的 SLB 服务来访问网关,确保后端网关的高可用,如果业务端和极限网关还在企业内网,可以使用极限网关自带的 4 层浮动 IP 来确保网关的[高可用](https://gateway.infinilabs.com ... ng_ip/)。
数据描述
以数据从自建集群 5.4.2 迁移到云上的 5.6.16 为例进行说明,执行步骤依次说明。
执行步骤
部署 INFINI Gateway
为了保证数据的无缝透明迁移,通过 INFINI [Gateway](https://infinilabs.cn/docs/latest/gateway/overview/) 来进行双写。
- 自建 ES 5.4.2
- 系统调优
参考此[文档](https://infinilabs.cn/docs/lat ... ation/)。
- 下载程序
<br /> [root@iZbp1gxkifg8uetb33pvcoZ ~]# mkdir /opt/gateway<br /> [root@iZbp1gxkifg8uetb33pvcoZ ~]# cd /opt/gateway/<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# wget <a href="http://release.infinilabs.com/gateway/snapshot/gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> --2022-05-19 10:16:25-- <a href="http://release.infinilabs.com/gateway/snapshot/gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> 正在解析主机 release.infinilabs.com (release.infinilabs.com)... 120.79.205.193<br /> 正在连接 release.infinilabs.com (release.infinilabs.com)|120.79.205.193|:80... 已连接。<br /> 已发出 HTTP 请求,正在等待回应... 200 OK<br /> 长度:7430568 (7.1M) [application/octet-stream]<br /> 正在保存至: “gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz”<br /> <br /> 100%[==============================================================================================================================================>] 7,430,568 22.8MB/s 用时 0.3s <br /> <br /> 2022-05-19 10:16:25 (22.8 MB/s) - 已保存 “gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz” [7430568/7430568])<br /> <br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# tar vxzf gateway-1.6.0_SNAPSHOT-649-linux-amd64.tar.gz <br /> gateway-linux-amd64<br /> gateway.yml<br /> sample-configs/<br /> sample-configs/elasticsearch-with-ldap.yml<br /> sample-configs/indices-replace.yml<br /> sample-configs/record_and_play.yml<br /> sample-configs/cross-cluster-search.yml<br /> sample-configs/kibana-proxy.yml<br /> sample-configs/elasticsearch-proxy.yml<br /> sample-configs/v8-bulk-indexing-compatibility.yml<br /> sample-configs/use_old_style_search_response.yml<br /> sample-configs/context-update.yml<br /> sample-configs/elasticsearch-route-by-index.yml<br /> sample-configs/hello_world.yml<br /> sample-configs/entry-with-tls.yml<br /> sample-configs/javascript.yml<br /> sample-configs/log4j-request-filter.yml<br /> sample-configs/request-filter.yml<br /> sample-configs/condition.yml<br /> sample-configs/cross-cluster-replication.yml<br /> sample-configs/secured-elasticsearch-proxy.yml<br /> sample-configs/fast-bulk-indexing.yml<br /> sample-configs/es_migration.yml<br /> sample-configs/index-docs-diff.yml<br /> sample-configs/rate-limiter.yml<br /> sample-configs/async-bulk-indexing.yml<br /> sample-configs/elasticssearch-request-logging.yml<br /> sample-configs/router_rules.yml<br /> sample-configs/auth.yml<br /> sample-configs/index-backup.yml<br />
- 修改配置
将网关提供的示例配置拷贝,并根据实际集群的信息进行相应的修改,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# cp sample-configs/cross-cluster-replication.yml 5.4.2TO5.6.16.yml <br />
首先修改集群的身份信息,如下:
![](https://www.infinilabs.com/img ... /3.png)
然后修改集群的注册信息,如下:
![](https://www.infinilabs.com/img ... /4.png)
根据需要修改网关监听的端口,以及是否开启 TLS (如果应用客户端通过 http 协议访问 ES,请将entry.tls.enabled 值改为 false),如下:
![](https://www.infinilabs.com/img ... /5.png)
不同的集群可以使用不同的配置,分别监听不同的端口,用于业务的分开访问。
- 启动网关
启动网关并指定刚刚创建的配置,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml <br /> <br /> ___ _ _____ __ __ __ _ <br /> / _ \ /_\ /__ \/__\/ / /\ \ \/_\ /\_/\<br /> / /_\///_\\ / /\/_\ \ \/ \/ //_\\\_ _/<br /> / /_\\/ _ \/ / //__ \ /\ / _ \/ \ <br /> \____/\_/ \_/\/ \__/ \/ \/\_/ \_/\_/ <br /> <br /> [GATEWAY] A light-weight, powerful and high-performance elasticsearch gateway.<br /> [GATEWAY] 1.6.0_SNAPSHOT, 2022-05-18 11:09:54, 2023-12-31 10:10:10, 73408e82a0f96352075f4c7d2974fd274eeafe11<br /> [05-19 13:35:43] [INF] [app.go:174] initializing gateway.<br /> [05-19 13:35:43] [INF] [app.go:175] using config: /opt/gateway/5.4.2TO5.6.16.yml.<br /> [05-19 13:35:43] [INF] [instance.go:72] workspace: /opt/gateway/data1/gateway/nodes/ca2tc22j7ad0gneois80<br /> [05-19 13:35:43] [INF] [app.go:283] gateway is up and running now.<br /> [05-19 13:35:50] [INF] [actions.go:358] elasticsearch [primary] is available<br /> [05-19 13:35:50] [INF] [api.go:262] api listen at: <a href="http://0.0.0.0:2900" rel="nofollow" target="_blank">http://0.0.0.0:2900</a><br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [backup] hosts: [] => [es-cn-tl32p9fkk0006m56k.elasticsearch.aliyuncs.com:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [backup] hosts: [] => [es-cn-tl32p9fkk0006m56k.elasticsearch.aliyuncs.com:9200]<br /> [05-19 13:35:50] [INF] [reverseproxy.go:261] elasticsearch [primary] hosts: [] => [192.168.0.19:9200]<br /> [05-19 13:35:50] [INF] [entry.go:322] entry [my_es_entry/] listen at: <a href="https://0.0.0.0:8000" rel="nofollow" target="_blank">https://0.0.0.0:8000</a><br /> [05-19 13:35:50] [INF] [module.go:116] all modules are started<br />
- 后台运行
<br /> [root@iZbp1gxkifg8uetb33pvcoZ gateway]# nohup ./gateway-linux-amd64 -config 5.4.2TO5.6.16.yml &<br />
- 应用授权
<br /> curl -XPOST <a href="http://localhost:2900/_license/apply" rel="nofollow" target="_blank">http://localhost:2900/_license/apply</a> -d'<br /> {<br /> "license": "XXXXXXXXXXXXXXXXXXXXXXXXX"<br /> }'<br />
部署 INFINI Console
为了方便在多个集群之间快速切换,使用 INFINI [Console](https://infinilabs.cn/products/console/) 来进行管理。
- 下载安装
<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# wget <a href="http://release.infinilabs.com/console/snapshot/console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> --2022-05-19 10:57:24-- <a href="http://release.infinilabs.com/console/snapshot/console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz" rel="nofollow" target="_blank">http://release.infinilabs.com/ ... ar.gz</a><br /> 正在解析主机 release.infinilabs.com (release.infinilabs.com)... 120.79.205.193<br /> 正在连接 release.infinilabs.com (release.infinilabs.com)|120.79.205.193|:80... 已连接。<br /> 已发出 HTTP 请求,正在等待回应... 200 OK<br /> 长度:13576234 (13M) [application/octet-stream]<br /> 正在保存至: “console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz”<br /> <br /> 100%[==============================================================================================================================================>] 13,576,234 33.2MB/s 用时 0.4s <br /> <br /> 2022-05-19 10:57:25 (33.2 MB/s) - 已保存 “console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz” [13576234/13576234])<br /> <br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# tar vxzf console-0.3.0_SNAPSHOT-596-linux-amd64.tar.gz <br /> console-linux-amd64<br /> console.yml<br />
- 修改配置
```
[root@iZbp1gxkifg8uetb33pvcpZ console]# cat console.yml
for the system cluster, please use Elasticsearch v7.3+
elasticsearch:
- name: default
enabled: true
monitored: false
endpoint: http://es-cn-7mz2p9fty0007frx0 ... :9200
basic_auth:
username: elastic
password: XXXXXX
discovery:
enabled: false
...
```
- name: default
- 启动服务
<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# ./console-linux-amd64 -service install<br /> Success<br /> [root@iZbp1gxkifg8uetb33pvcpZ console]# ./console-linux-amd64 -service start<br /> Success<br />
- 访问后台
访问该主机的 9000 端口,即可打开 Console 后台,http://x.x.x.x:9000/
打开菜单 [System][Cluster] ,注册当前需要管理的 Elasticsearch 集群和网关地址,用来快速管理,如下:
![](https://www.infinilabs.com/img ... /6.png)
测试 INFINI Gateway
为了验证网关是否正常工作,我们通过 INFINI Console 来快速验证一下。
首先通过走网关的接口来创建一个索引,并写入一个文档,如下:
![](https://www.infinilabs.com/img ... /7.png)
查看 5.4.2 集群的数据情况,如下:
![](https://www.infinilabs.com/img ... /8.png)
查看集群 5.6.16 的数据情况,如下:
![](https://www.infinilabs.com/img ... /9.png)
说明网关配置都正常,验证结束。调整网关的消费策略
因为我们需要在全量数据迁移之后,才能进行增量数据的追加,在全量数据迁移完成之前,我们应该暂停增量数据的消费。修改网关配置里面 Pipeline
consume-queue_backup-to-backup
和consume-queue_primary-failure-to-backup
的参数auto_start
为false
,表示不自动启动该任务,具体配置方法如下:
![](https://www.infinilabs.com/img ... 10.png)
![](https://www.infinilabs.com/img ... 11.png)
修改完配置之后,需要重新启动网关。
为了方便管理,可以使用 INFINI Console 来注册和管理网关,如下:
![](https://www.infinilabs.com/img ... 12.png)
![](https://www.infinilabs.com/img ... 13.png)
待全量迁移完成之后,可以通过后台的 Task 管理来进行后续的任务启动、停止,如下:
![](https://www.infinilabs.com/img ... 14.png)切换流量
接下来,将业务正常写的流量切换到网关,也就是需要把之前指向 ES 5.4.2 的地址指向网关的地址,如果 5.4.2 集群开启了身份验证,业务端代码同样需要传递身份信息,和 5.4.2 之前的用法保持不变。
![](https://www.infinilabs.com/img ... 5.jpeg)
切换流量到网关之后,用户的请求还是以同步的方式正常访问自建集群,网关记录到的请求会按顺序记录到 MQ 里面,但是消费是暂停状态。
如果业务端代码使用的 ES 的 SDK 支持 Sniff,并且业务代码开启了 Sniff,那么应该关闭 Sniff,避免业务端通过 Sniff 直接链接到后端的 ES 节点,所有的流量现在应该都只通过网关来进行访问。全量数据迁移
在流量迁移到网关之后,我们开始对自建 Elasticsearch 集群的数据进行全量迁移到云端 Elasticsearch 集群。
![](https://infinilabs.cn/img/blog ... 6.jpeg)
全量迁移已有的数据的方式有很多种:
- 通过快照的方式进行恢复
- 使用工具来导出导入,如: [ESM](https://github.com/medcl/esm)
如果索引数量很多的话,可以按照索引依次进行导入,同时需要注意将 Mapping 和 Setting 提前导入。
以现在 5.4 集群的索引来为例,目前的待迁移索引为demo_5_4_2
,只有4
个文档:
![](https://infinilabs.cn/img/blog ... 17.png)
我们使用网关自带的迁移功能来进行数据迁移,拷贝自带的样例文件,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcpZ gateway]# cp sample-configs/es_migration.yml 5.4TO5.6.yml<br />
修改其中代表集群和索引的相关配置,可以根据需要配置是否需要重命名索引和统一 Type( 用于跨版本统一 Type),如下图红框位置:
![](https://infinilabs.cn/img/blog ... 18.png)
创建好模板和索引,如果目标集群不允许动态创建文档,需要提前创建好索引,如下图:
![](https://infinilabs.cn/img/blog ... 19.png)
然后就可以开始数据的迁移了,执行网关程序并指定刚刚定义的配置,如下:
![](https://infinilabs.cn/img/blog ... 20.png)
执行完成后,可以确认下数据的情况,如下图:
![](https://infinilabs.cn/img/blog ... 21.png)
全量数据至此导入完成。
增量数据迁移
在全量导入的过程中,可能存在数据的增量修改,不过这部分请求都已经完整记录下来了,我们只需要开启网关的消费任务即可将挤压的请求应用到云端的 Elasticsearch 集群。
![](https://infinilabs.cn/img/blog ... 2.jpeg)
示例操作如下:
![](https://infinilabs.cn/img/blog ... 23.png)
如果从 5.6 的集群来看的话,这部分的修改还没同步过来,如下:
![](https://infinilabs.cn/img/blog ... 24.png)
这部分增量的数据变更,在网关层面都进行了完整记录,我们只需要开启网关的增量消费任务,如下:
![](https://infinilabs.cn/img/blog ... 25.png)
通过观察队列是否消费完成来判断增量数据是否做完,如下:
![](https://infinilabs.cn/img/blog ... 26.png)
现在我们再看一下 5.6 集群的数据情况,如下:
![](https://infinilabs.cn/img/blog ... 27.png)
数据的增量更新就过来了。执行数据比对
由于集群内部的数据可能比较多,我们需要进行一个完整的比对才能确保数据的完整性,可以通过网关自带的数据比对工具来进行,将样例自带的文件拷贝一份,如下:
<br /> [root@iZbp1gxkifg8uetb33pvcpZ gateway]# cp sample-configs/index-docs-diff.yml 5.4DIFF5.6.yml<br />
修改需要比对的集群和索引信息,可以加上过滤条件,如时间范围窗口来进行增量 Diff,如下图:
![](https://infinilabs.cn/img/blog ... 28.png)
执行网关程序,并指定该配置文件,如下图:
![](https://infinilabs.cn/img/blog ... 29.png)
如图,两个集群完全一致。切换集群
如果验证完之后,两个集群的数据已经完全一致了,可以将程序切换到新集群,或者将网关的配置里面的主备进行互换,同步写 5.6 集群。
![](https://infinilabs.cn/img/blog ... 0.jpeg)
双集群在线运行一段时间,待业务完全验证之后,再安全下线旧集群,如遇到问题,也可以随时回切到老集群。小结
通过使用极限网关,自建 ES 集群可以安全无缝的迁移到移动云 ES,在迁移的过程中,两套集群通过网关进行了解耦,两套集群的版本也可以不一样,在迁移的过程中还能实现版本的无缝升级。
如有任何问题,请随时联系我,期待与您交流!
![](https://infinilabs.cn/img/blog ... gf.png)
- 通过快照的方式进行恢复
关于ES Java Client的一个问题
mryu 回复了问题 • 3 人关注 • 3 个回复 • 2919 次浏览 • 2024-04-07 17:18
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书《一本书讲透Elasticsearch》已上线...
laoyang360 发表了文章 • 0 个评论 • 4442 次浏览 • 2024-03-27 15:55
今天,非常高兴地跟大家宣布,经过 7 年多的努力和精心准备,我们的新书《一本书讲透 Elasticsearch》已正式出版上线!
我从 2016 年接触 Elasticsearch 1.X、2.X 的版本,到现在已经接近 8 年+的时间。在这期间,我常常被问到:
如何系统性地学习 Elasticsearch ?
如何将现有的关系型数据库迁移到 ES ?
如何选择合适的版本?
如何规划和监控集群?
如何进行数据建模?
如何选择合适的检索方式?
如何基于现有数据进行可视化分析?
等一系列问题.......
这些问题促使我将之前的产品开发、项目实战经验和咨询经验进行全面整合,并精心梳理,融入到这本新书中,希望能让大家少走不必要的弯路。
一、书籍特点
本书具有以下几个显著特点:
最新版本,前沿知识点
本书基于 8.x 版本编写,涵盖了如索引生命周期管理、快照生命周期管理、数据流 datastream 等至关重要的新特性。
核心知识,系统认知
我们为您提供了清晰的学习路径,保留了最核心的“最少必要”知识点,并通过思维导图和大量图解内容,帮助读者更易理解和吸收。
实际应用,超越认证
覆盖Elastic官方认证的核心知识点,已帮助近200人通过Elastic专家认证考试。内容不仅限于认证,更注重实际应用。
来源于实战,应用于实战
书中内容源自真实项目案例和企业级问题解答(问题来自于Elasticsearch中文社区、死磕Elasticsearch知识星球、微信群、QQ群等)。涵盖3个实战项目,助力读者将技能应用到企业实战环境中。
代码开源,答疑服务
全书的代码、脚本在GitHub上开源,便于初学者通过实践学习。我们的答疑社群将持续跟踪最新问题,不断迭代更新内容。
二、5 个最尖锐问题快问快答
如下的问题来自 ChatGPT 4.0 的作为专业读者提出的 5 个最尖锐问题。
我快速回答一下:
2.1 问题1:市场竞争和定位问题
“市面上已有接近10本关于Elasticsearch的书籍,您的书与这些现有书籍相比有何独特之处?您是如何确保您的书在内容上与其他书籍区别开来,满足读者新的或更深入的需求的?”
铭毅天下:
1、独特之处:版本咱们是目前市场唯一的 8.X 版本。
2、区别开来:我从 2016 年开始搞 ElasticStack 到现在几乎平均每周一篇技术博客,从未间断。无需多说,时间能证明一切!这是咱们最大的不同之一。
3、还有不同:我自己公众号+博客有累计近 4.5 万+关注读者,知识星球有近2000人付费用户,这些大量的实战问题促使我唯有“自我革命”才能生存和成长!
2.2 问题2:实用性和更新性问题
“鉴于Elasticsearch技术持续发展和迭代,您的书籍是如何处理和包含最新版本的特性和变化的?在提供最新信息的同时,您如何保证书中内容的长期有效性和实用性?”
铭毅天下:
1、实话说结论,我做不到,市面上任何纸质书都不可能做到。受限于撰写、出版等相较于 Elastic技术栈体系更新的滞后性。
2、但是,我在筛选知识点的时候已充分考虑结合企业级实战以及 Elastic 官方认证考试的最核心、最关键的“最少必要知识”作为咱们的提纲,并且承诺后面继续根据读者反馈迭代和升级。
2.3 问题3:作者经验和权威性问题
“您能否分享一些您个人在Elasticsearch领域的实战经验或特殊贡献,这些经验如何在您的书中得到体现?作为作者,您相比其他书籍作者有哪些独特的优势或视角?”
铭毅天下:
1、本人持续深耕大数据存储和检索领域 7 年+,有博客为证!有丰富的项目实战经验和企业级实战问题咨询经验,已带领近200人+通过 Elastic 认证专家考试。
2、独特视角就是:来自全国乃至全球多个国家的实战问题——自己运营的知识星球、微信群、QQ群多达数千人,每天都有大量实战问题涌现。
3、作者是坚定的长期主义者:博客已写12年+,从未间断!相信积累的力量、相信坚持的力量、相信相信的力量!
2.4 问题4:读者受益问题
“您认为读者在阅读您的书籍之后,最具体和显著的收获会是什么?有哪些实际的技能或知识可以直接应用到他们的工作和项目中?”
铭毅天下:
1、少走不必要的弯路!
2、能获得属于自己的专属学习路线,能建立专属的知识体系,能将 Elasticsearch 原理、开发、运维、架构技能应用于实战。
2.5 问题5:内容深度和广度问题
“您的书籍是如何平衡Elasticsearch的基础知识和高级技术的?它是否适合所有水平的读者,从初学者到高级用户?对于那些已经具有深厚Elasticsearch知识背景的读者,您的书提供了哪些更深入的见解或独特内容?”
铭毅天下:
1、适合大数据存储和检索领域的初学者,也同样适合有工作经验的中级、高级工程师、架构师等。
2、对于深厚Elasticsearch知识背景的读者,本书可以当做工具书,需要时备查、常翻常新。
三、行业顶级大佬的推荐
值得一提的是,这本书获得了 Elastic 创始人兼CTO Shay Banon 、Elastic中文社区创始人兼极限科技CTO等15位顶级专家的强力推荐,是一本不可多得的Elasticsearch学习材料。
I am very happy to see that Elasticsearch has been widely used in China, which fully reflects the open source, free and open power of Elastic. This book is derived from the author's 7 years of technical accumulation and embodies the author's love for ElasticStack open source technology. I hope this book can help more people understand Elasticsearch and search technology, so as to discover the great value of data. I am convinced that this book will have a profound impact on Elastic's Chinese community.
我很高兴看到Elasticsearch在中国得到了广泛的应用,这充分体现了Elastic开源、自由、开放的力量。本书源自作者7年的技术积累,体现了作者对ElasticStack开源技术的热爱。希望这本书能够帮助更多的人了解Elasticsearch和搜索技术,从而发现数据的巨大价值。我相信这本书将对 Elastic 的中文社区产生深远的影响。
——Shay Banon Elastic公司创始人兼首席技术官
很高兴看到铭毅天下的新书出版,《一本书讲透Elasticsearch:原理、进阶与工程实践》是一本值得推荐的新书。它汇集了作者丰富的实战经验,深入探讨 Elasticsearch的 核心原理。书中丰富的图解和清晰的结构使得复杂的知识易于理解和吸收。同时,它覆盖了 Elastic 认证考试的所有考点,助力读者建立全面的认知。此外,书中还包含实战项目,帮助读者将所学技能应用到实际场景中。作者拥有多年实战经验和广泛的影响力,这本书将成为学习和应用 Elasticsearch 的重要指南。
——Medcl,Elastic 中文社区创始人、极限科技创始人
铭毅天下是ES中文社区里少有的常年坚持写作的技术博主,尤其擅长将点状发散的社区讨论进行归纳总结,结合自己的实践和再思考,形成系统性的系列技术文章。本书成于作者在Elasticsearch领域多年的理论知识沉淀,并涵盖了实际应用场景的最佳实践。无论你是Elasticsearch初学者还是有一定经验的开发者,相信都能通过阅读本书而受益匪浅。
—— 吴晓刚 (Wood大叔)携程旅行网 企业数字化平台部 研发总监
在大数据检索和分析领域,Elastic Stack 技术栈有广泛应用,本书从业务场景出发详细介绍了在 Elasticsearch 擅长的各类场景中完成业务系统开发所需的技术栈和技术手段,为用户系统选型和了解整体技术架构提供了指导,可以帮助用户少走弯路,快速完成系统建设。
——张超 《Elasticsearch 源码解析与优化实战》作者, Elasticsearch 内核资深研发工程师
本书基于Elasticsearch最新的8.X版本,涵盖了Elasticsearch更加完整、实时的功能。作者拥有丰富的Elasticsearch和写作经验,语言通俗易懂,内容详尽全面。无论你是初学者还是有一定经验的开发人员,本书都能够为你提供更深入的内容和最佳实践。如果你想系统地学习、掌握Elasticsearch,那么这本书绝对是你不可错过的参考书籍。
—— 魏子珺,阿里巴巴elasticsearch内核专家
很高兴为大家推荐这本关于Elasticsearch的技术书籍。本书涵盖了相当丰富的原理讲解和实现技术,更重要的是对实战场景给出了明确的指导案例和代码片段可供参考和使用。即面向开发人员深入讲解了搜索引擎的核心算法与数据结构,也同时给运维人员提供了关键指标的定义和解读。对于想系统学习的初、中级用户,可以按照章节循序渐进的阅读。对于高级用户来说,也可以从 遇到的问题为切入点,直接从某个具体章节入手来测试、寻求解决方案。铭毅天下是Elastic中文社区长期活跃和积极贡献的明星成员。非常兴奋看到他把自己日积月累的知识精华和经验总结在书中分享给广大读者。我相信本书一定可以帮助到处在任何阶段想学习探索Elasticsearch的用户。
——吴斌,Elastic中文社区主席
《一本书讲透Elasticsearch:原理、进阶与工程实践》是一本由一线开发人员撰写的实战指南。作者凭借多年的 Elasticsearch 咨询和教学经验,将复杂的概念以简明易懂的方式呈现给读者。这本书将帮助你深入了解 Elasticsearch,并理解其背后的原理和逻辑。通过学习本书,你将获得全面的知识,从而能够灵活应用 Elasticsearch 解决各种实际问题。相信这本书将成为你掌握 Elasticsearch 的必备工具。
——阮一鸣,eBay 高级研发经理、极客时间『Elasticsearch 核心技术与实战』课程讲师
铭毅在 Elasticsearch 领域深耕多年,勤奋且专注, 同时运营着国内最大的 ES 社群 ,帮助许多同学成功通过了有难度的 Elastic 认证工程师考试。很高兴看到他的新书出版,都说万事开头难,但我相信这本书能够为ES 初学者铺平道路,扫除障碍,澄清疑虑,快速上手!推荐大家阅读!
——魏彬,中国首位 Elastic 认证工程师
《一本书讲透Elasticsearch:原理、进阶与工程实践 》这本书是我极力推荐的一部作品!
我认识铭毅天下很久了,第一次见面记得是2019年在北京的Elastic开发者大会上,但在这之前,我就经常阅读他关于Elasticsearch的技术分享而神交已久。我了解的铭毅天下是一位拥有丰富的Elasticsearch领域知识和经验的专家,他曾在PB级大数据系统项目中发挥关键作用。实施这种大规模,长周期的复杂项目是非常不容易的,无论从系统设计,到实施过程中的问题解决。因此,来自于实践的真知产出,值得我们开卷。
多年来,铭毅天下一直积极、高效地在各种博客和社交媒体上分享与Elasticsearch相关的内容,并密切同步每个版本的更新。在Elasticsearch上,他不仅持续自我精进,还组织了学习小组和社区,帮助其他对Elasticsearch感兴趣的伙伴一起进步。他还带领150多人通过Elastic工程师认证,为许多人的职业发展贡献了力量。
这本书是铭毅天下多年经验的总结,内容涵盖了几乎全部的Elastic认证考点,而且它来自铭毅天下近7年的博客积累,每一章节都经得起时间的考验。因为抓住了平时学习和使用Elasticsearch当中痛点并总结了最佳实践,这些内容不仅阅读量高,而且转发度也很广泛。无论你是想深入了解Elasticsearch的基础知识还是应用实践,这本书都能满足你的需求。
我相信这本书将为读者提供一次全面而深入的学习体验,帮助他们在Elasticsearch领域取得突破。无论你是初学者还是有经验的专业人士,这本书都是不可或缺的指南。我由衷地推荐这本书,相信它会成为你在Elasticsearch学习和实践中的得力伙伴!
——李捷,Elastic 解决方案架构师 Principle Solution Architect
当得知本书成稿的消息时,我的心情是非常激动的,不管是作为一名技术人,还是作为一名搜索引擎的从业者,以及作为一名Elasticsearch中文社区的参与者和建设者。本书作者与我们一起见证了Elastic生态在国内的起步、发展以及到今天的繁荣;有所不同的是,作者有超强的毅力(就像铭毅天下的名字一样),坚持在这个技术方向上深耕了7年之久,在知识、技术和实践等方面有着深厚的经验积累,不但亲力亲为,而且深谙知识社群与实践社区CoP的操盘之道,在自我成长的同时也打造了优质的同行网络,积极影响了一批技术人,其中的优秀者更是通过了Elatics官方认证,极具含金量。本书的出版,一定会给更多技术人带来直接或间接的帮助,同时在个人成长、知识共享与实践社区等方面在业内树立成功的榜样。让我们一起用技术影响世界影响人!
—— 杨振涛,Elastisearch中文社区深圳主席|vivo互联网 研发总监
Elasticsearch是人工智能和大数据时代不可或缺的重要产品,已经成为开发者必备技能。本书汇集了作者多年开发经验、咨询经验、数千个Elasticsearch爱好者的最佳实战。因此在讲解原理的同时,能深入到最佳实践中去,做到深入浅出,非常适合Elasticsearch的初学者以及进阶者。
—— 付磊,快手Elasticsearch负责人,《Redis开发与运维》作者
Elasticsearch 作为一款强大又灵活的数据分析检索工具,值得每一位后端程序员认真学习。铭毅天下的这本《一本书讲透Elasticsearch:原理、进阶与工程实践》,用浅显易懂的语言介绍了Elasticsearch的概念、原理和实践,非常值得阅读!
—— 程序员小灰,公众号【程序员小灰】运营者,畅销书《漫画算法》作者
铭毅是我的老友,他是一个及其认证踏实和执着追究技术的人,这七年来他一直热心Elasticstack相关技术的步道,热忱帮助社区和公众号里的伙伴,成就不俗。本书是一本实用性极高的Elasticsearch的实践类书籍,更是铭毅倾尽所学之作。通读原稿后,让我非常欣赏的地方在于,它是市面上难得一见的把Elasticsearch原理,实现方式,最佳实践,以及实战案例串联在一起实操类书籍,无论是初学者还是需要进阶学习的人员都能从中获取想要的内容。十分适合想要在企业环境中落地Elasticsearch的人们,因此我诚意把它推荐给广大的技术爱好者和相关从业人员。
——周钰, IBM中国 企业架构师 中国前50 Elastic持证者
Elasticsearch作为一款优秀的开源分布式搜索引擎,被广泛应用在日志分析、站内搜索、指标监控、数据加速等场景,学习并掌握ES,已经成为一个技术工作人员不可或缺的重要技能之一。而本书深入浅出,对Elasticsearch的基本概念、设计原理及实践进行了详细介绍,是学习Elasticsearch的必备资料。诚挚推荐。
—— 吴荣,Elasticsearch平台资深研发工程师
一份专业、细致、用户友好的技术文档能给我们技术人员的日常工作带来多大的帮助,相信大家都有深刻的体会,特别是像Elasticsearch这种在搜索引擎领域最广泛应用的解决方案更是如此。虽然官方文档内容很详尽,更新很及时,但是限于语言、网速等问题,广大国内开发者并不能很准确高效的找到自己需要的内容。铭毅老师这本,兼顾了内容的专业性、严谨性、完整性,围绕着Elasticsearch及其相关组件所撰写,覆盖了从基础概念到高级用法的方方面面内容的专业书籍,能给各位带来的价值就不言而喻了。这本书适合从入门使用到高级调优的各层次的读者,是一本少有的适合放在案头常看常新的书。
—— 陈晨(死敌wen),资深搜索架构师、Elastic认证专家
15位大佬评价批量导入 Elasticsearch
15位大佬评价 Kibana 可视化
15位大佬评价词云图
无论您是大数据检索领域的初学者、开发和运维人员,还是架构师和管理人员,这本书都将成为实战路上的得力助手和“避坑指南”。
立即购买以获取专属福利:不论您从哪里购买、不论多少费用购买,记得保留购物链接和发票,费用都可以折算同等价格的星球优惠券。
私V信:elastic6 搞定后续一切流程。
————————————————
本文为博主原创文章,未经博主书面授权不得转载。书面授权后方可转载,但转载请务必加上原作者:铭毅天下,原文地址:blog.csdn.net/laoyang360
原文链接:https://blog.csdn.net/laoyang3 ... 14659
搞了一个冷节点存储空间有200T,一直报错 Too many open files
Charele 回复了问题 • 2 人关注 • 1 个回复 • 2198 次浏览 • 2024-03-24 20:16