从 Redis 开源协议变更到 ES 国产化:一次技术自主的机遇
Easysearch • Muses 发表了文章 • 0 个评论 • 4978 次浏览 • 2024-04-11 16:05
引言
近日,Redis Labs 宣布其主导的开源项目 Redis 将采用双重源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1)。这一重大决策标志着 Redis 从传统的 BSD 许可证向更加严格的控制权转变,同时也引发了广泛的社区和行业讨论。这不仅是一个关于许可证变更的故事,更是关于开源社区如何响应,以及这一变化如何激发对国产技术探索和发展的深刻思考。Redis,作为最受欢迎的开源键值存储数据库之一,其开源协议的变更反映了开源软件在商业化道路上的挑战和压力。Redis Labs 的 CEO Rowan Trollope 指出,这一变化旨在防止云服务提供商免费使用 Redis 代码,同时促进 Redis 社区的可持续发展和创新。
![](https://infinilabs.com/img/blo ... is.png)
Redis 协议变更的深远影响
Redis 决定放弃 BSD 协议,转而采用双重源代码可用许可证(RSALv2 和 SSPLv1),标志着开源界的一个重要转折点。这一变化不仅影响了 Redis 本身,更引发了社区成员和技术行业的激烈讨论,许多人担心这将限制 Redis 的开源精神和广泛应用。然而,也有声音认为,这为其他开源项目,如 KeyDB、Dragonfly 和 Garnet 等,提供了发展的机遇,尤其是在提供与 Redis 兼容的替代解决方案方面。尽管 Redis 的这一变更在技术和法律上引发了争议,它也激发了开源社区对于如何在维护开源精神和寻求商业可持续性之间找到平衡的探索。此外,Redis 团队对于保持客户端库的开源许可和继续支持开源社区版的承诺,展示了一种尝试在新的许可模式下保持开放性和可接入性的方法。由于 Redis 的广泛应用,其协议变更对云服务商、Linux 发行版,甚至整个开源软件生态都产生了不小的冲击。一方面,云服务提供商需要重新评估其服务模型;另一方面,一些 Linux 发行版可能需要考虑将 Redis 从其软件仓库中移除。
ES 国产化的契机
Redis 开源协议的变更同时也让人们重新审视其他关键技术,特别是 Elasticsearch(ES)的依赖和发展。ES 作为一个强大的搜索和数据分析引擎,在全球范围内被广泛使用。随着对开源项目商业化模式的重新考量,中国开发者和企业开始寻求国产化的 ES 替代品,旨在减少对外部技术的依赖,同时推动国内技术生态的多元化和自主创新。但是国产化的探索并非没有挑战。从技术兼容性、性能优化到社区生态建设,每一步都需要深思熟虑和持续的努力。然而,Redis 的许可证变更为国内技术自主提供了一个独特的视角,鼓励开发者、企业乃至政府机构更加积极地参与到开源技术的本土化和创新中来。Redis 开源协议的变更引发的讨论和行动,凸显了开源社区对于自身未来发展方向的深刻反思。这一变革不仅关乎一个项目的许可模式转变,更触及到开源项目如何在保持开放和自由的同时,寻找到可持续发展的道路。此外,它也促使更多的开源项目和企业思考如何在全球化的技术生态中保持竞争力和影响力。
Easysearch:国产化的新选择
针对这一需求,极限科技 隆重推出了 [Easysearch](https://infinilabs.cn/docs/latest/easysearch) 搜索引擎软件,旨在提供一个与 Elasticsearch 兼容的国产化解决方案。Easysearch 不仅支持原生 Elasticsearch 的 DSL 查询语法,还提供了诸多企业级功能的增强,如更高的性能、稳定性和扩展性,以及更加丰富的安全管理和数据压缩功能。这表明,国产化技术的发展不仅是为了替代,更是在原有基础上进行创新和优化。ES 国产化解决方案 Easysearch 的推出,是响应国家对信创、自主可控战略布局的具体行动。通过提供兼容性强、功能丰富且稳定的国产技术替代品,不仅有助于减少对外部技术的依赖,也为国内技术生态的繁荣和创新贡献力量。这一过程中,既涵盖了对现有技术的深入理解和应用,也包含了对新技术、新方法的探索和实践。
![](https://infinilabs.com/img/blo ... er.png)
结语
Redis 开源协议的变更和 Elasticsearch 国产化解决方案的兴起,共同反映了当前技术世界中开源与商业、国际与国产之间复杂而微妙的关系。这一趋势不仅仅是技术领域的变化,更是全球化背景下,各国在技术自主、安全与发展方面所做出的战略性调整。随着更多开源项目和技术面临类似的挑战,我们或许可以预见,技术自主和开源创新将成为推动未来技术发展的两大关键力量。
参考
- https://redis.com/blog/redis-a ... nsing
- https://www.elastic.co/cn/blog/licensing-change
- https://infinilabs.cn/products/easysearch
- https://infinilabs.cn/blog/202 ... ative
- https://infinilabs.cn/blog/202 ... ducts
关于极限科技(INFINI Labs)
![关于极限科技](https://infinilabs.com/img/blo ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:<https://www.infinilabs.com>
【搜索客社区日报】第1808期 (2024-04-11)
社区日报 • Se7en 发表了文章 • 0 个评论 • 3503 次浏览 • 2024-04-11 09:38
https://github.com/microsoft/g ... nners
2.月之暗面真的很强?我们来用一个问题评测这些 ChatGPT 平替
https://mp.weixin.qq.com/s/YghsVzbW-6FZSIEhq4A_jw
3.Elasticsearch 之 match_phrase 小坑记录
https://www.cnblogs.com/pyspark/p/8817706.html
4.真的假的!有个物联网公司通过自建数据库省了 98% 的云成本?!
https://mp.weixin.qq.com/s/BB6uaYIzmixiniIbpQO11A
编辑:Se7en
更多资讯:http://news.searchkit.cn
ES中会不会出现这个问题
Elasticsearch • emmning 回复了问题 • 2 人关注 • 2 个回复 • 4362 次浏览 • 2024-04-29 10:15
4月13日 OpenSearch Meetup:探索大模型时代下的 VectorDB
OpenSearch • liaosy 发表了文章 • 0 个评论 • 3709 次浏览 • 2024-04-10 10:08
![OpenSearch](https://elasticsearch.cn/uploa ... 7.jpeg)
在大模型席卷全球的行业背景下,基于检索结果增强的文本生成(RAG)备受关注。而作为 RAG 关键技术的向量数据库(VectorDB)正处在发展的十字路口。作为全球头部的 VectorDB 解决方案,OpenSearch 社区一直致力于前沿向量检索技术的研发。为了探讨 VectorDB 的发展趋势、应用场景、上下游技术生态,我们策划了这一场技术分享与线下见面会。希望可以给 VectorDB 玩家提供一个学习知识、结交朋友的平台。
在这场见面会中,我们会邀请来自于头部企业的向量检索技术研发专家、OpenSearch 社区的活跃贡献者以及一线人工智能科学家,来分享 VectorDB、大模型以及上下游相关技术的最新发展,以及对这个行业的未来的走向的见解。您将在这场会议中看到各个 VectorDB 头部企业的最新向量检索技术和产品,甚至有机会亲自作为用户去尝试。同时,我们还将举行圆桌讨论,您可以和各个相关行业的资深人士深入探讨 VectorDB 的未来,以及在这个行业中可能把握的机会。
时间:2024/04/13(周六) 14:00-18:30
地点:上海市长宁区新华路345弄4号楼 STOP SHOP(社友咖啡)
INIFINI Labs 议题推荐
《向量搜索基础设施 OpenSearch - 多集群管理的挑战与实践》By 曾嘉毅| INFINI Labs 联合创始人
摘要:数据规模不断增长和业务需求的多样化,推动了向量搜索技术的兴起。本次介绍聚焦于向量搜索的崛起和 OpenSearch 平台的能力,同时探讨业务数据集群发展趋势和常见挑战,包括管理多套集群、容量规划、监控、告警、治理、安全、开发、流量和排障等问题,提供解决方案和最佳实践。
活动整体议程
关于极限科技(INFINI Labs)
![INFINI Labs](https://www.infinilabs.com/img ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:<https://www.infinilabs.com>
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
![](https://infinilabs.cn/img/blog ... ew.jpg)
【搜索客社区日报】第1807期 (2024-04-09)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 3331 次浏览 • 2024-04-10 09:22
1. 微服务实战,用kafka传递数据进elastic cloud(需要梯子)
https://medium.com/%40samb333/ ... 79101
2. 一个介绍上百种常见的comfyui节点的站点
https://t.co/Mt58zD5t2l
3. 一个很精简的项目用来学习编译器的开发的
https://github.com/jamiebuilds ... piler
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
【搜索客社区日报】 第1806期 (2024-04-08)
社区日报 • yuebancanghai 发表了文章 • 0 个评论 • 3558 次浏览 • 2024-04-08 10:11
https://blog.csdn.net/Andrew_C ... 55079
2 Elasticsearch 集群异常状态分析
https://cloud.tencent.com/deve ... 59285
3、Elasticsearch 优化锦囊
https://cloud.tencent.com/deve ... 55412
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第1805期 (2024-04-04)
社区日报 • Se7en 发表了文章 • 0 个评论 • 3831 次浏览 • 2024-04-04 16:35
https://medium.com/bitgrit-dat ... e4a22
2.利用 Elastic AI Assistant for Observability 进行警报管理,最大限度地提高 IT 效率
https://www.elastic.co/blog/it ... ility
3.一张图30个知识点,全方位认知 Elasticsearch 技术发展
https://mp.weixin.qq.com/s/clrJtUd6AZ7Ert8G1-M4OA
4.HN 热帖|替换 Redis 的一场赛跑
https://mp.weixin.qq.com/s/yOQCPOMfQF-nJFh8m799RA
编辑:Se7en
更多资讯:http://news.searchkit.cn
2024 DTC 数据技术嘉年华 | 我们在现场等你
资讯动态 • searchkit 发表了文章 • 0 个评论 • 4287 次浏览 • 2024-04-03 18:42
导语
龙腾四海内,风云际会时。2024年4月12日至13日,北京新云南皇冠假日酒店将迎来一场盛会《第十三届数据技术嘉年华》。这是由墨天轮数据社区和中国数据库联盟(ACDU)携手主办的精彩盛事。本次嘉年华的主题是“智能·云原生·一体化——DB 与 AI 协同创新,模型与架构融合发展”将为您揭示数据技术的未来趋势。80余位行业领袖、技术精英、实践者和生态布道者将汇聚一堂,带来一场思想碰撞的盛宴。
极限科技(INFINI Labs)创始人 & CEO,Elasticsearch 中文社区(现搜索客)发起人兼社区主席曾勇先生应邀出席参加第十三届数据技术嘉年华盛会,并将于 4 月 13 日下午 15:00 在 NoSQL 数据库专题论坛上发表演讲,演讲主题:《下一代纯实时搜索引擎 Pizza》,为大家介绍当前最新搜索型数据库的行业发展趋势、前沿的技术方案、如何解决海量数据下的高并发低延迟实时检索需求等干货内容。
欢迎大家报名参会,共同探讨与交流。我在 DTC 现场等你!购票时输入优惠码(ZENGY)即可免费参会,数量有限,先到先得~
极限科技一直致力于推动数据技术的边界,不断突破创新。我们相信,通过与业内的顶级专家和领导者们的深入交流与合作,我们能够共同开创数据技术的美好未来。这场嘉年华将为我们提供一个珍贵的机会,与业界精英们面对面交流,共同探索数据技术的前沿领域。
大会议程
除了技术盛宴外,本次大会还为参会者准备了丰厚的大奖,其中主论坛的奖品更是高达上万元。此外,参会者们还可以前往各个厂商展台,领略产品魅力并感受最新最前沿的数据技术,完成集章任务后更有机会抽取千元大奖,相信一定能给您带来意想不到的惊喜!点击“[查看原文](https://www.modb.pro/dtc2024)”了解更多活动信息吧!
关于极限科技(INFINI Labs)
![INFINI Labs](https://www.infinilabs.com/img ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:<https://www.infinilabs.cn>
3月26日 OpenSearch Community Meeting 视频回放
OpenSearch • Charele 回复了问题 • 2 人关注 • 1 个回复 • 4475 次浏览 • 2024-04-05 16:58
记某客户的一次 Elasticsearch 无缝数据迁移
Elasticsearch • yangmf2040 发表了文章 • 0 个评论 • 4625 次浏览 • 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)
- 通过快照的方式进行恢复
【搜索客社区日报】第1804期 (2024-04-02)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 3685 次浏览 • 2024-04-02 14:16
https://medium.com/booking-com ... fb9e7
1. 可以离线部署的开源翻译库
https://libretranslate.com/
https://github.com/LibreTranslate/LibreTranslate
3. (可能是)世界上最大的电子书存档网站,懂得都懂
https://annas-archive.org/
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
求大佬门指点一下职业方向?
默认分类 • emmning 回复了问题 • 3 人关注 • 2 个回复 • 2710 次浏览 • 2024-04-08 10:09
【搜索客社区日报】第1803期 (2024-03-29)
社区日报 • laoyang360 发表了文章 • 0 个评论 • 2628 次浏览 • 2024-03-29 20:00
https://towardsdev.com/harness ... b0732
2、Elasticsearch 中的未捕获异常——加密 PDF 处理漏洞(8.4——8.11.1)
https://www.cve.org/CVERecord?id=CVE-2024-23449
3、Elasticsearch 开放推理 API 添加了对 Cohere 嵌入的支持
https://search-labs.elastic.co ... pport
编辑:铭毅天下
更多资讯:http://news.searchkit.cn