👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
-
新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
- 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍;演示地址:http://116.62.199.48:7070/
- 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
- 专栏阅读地址:https://www.quanxiaoha.com/column
截止目前,
累计输出 100w+ 字,讲解图 4013+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有4000+小伙伴加入
unsetunset一、先说结论unsetunset
Open Distro 已经不更新了,开发团队都转到 OpenSearch 去了。
亚马逊搞了个 Elasticsearch/Kibana 的开源分支。老读者可能会奇怪,他们不是从 2019 年 2 月就开始搞 Open Distro 了吗?怎么又来个 OpenSearch?
再说国内,随着信创政策推进,Elasticsearch 许可证变更,很多国内公司开始担心合规问题。这时候国产的 Easysearch 出现了。
咱们今天就把这几个项目捋一捋,看看它们之间到底有啥区别。
unsetunset二、Open Distro:给 Elasticsearch 加功能unsetunset
2.1 先说它是啥
Open Distro 出现得比较早。
说白了,它就是原汁原味的 Elasticsearch,只不过亚马逊在上面加了一堆功能插件。
就像你买了个毛坯房,Open Distro 帮你装修好了,加了家具家电,但房子本身还是那个房子。
2.1 亚马逊 AWS 公司加了哪些东西
2.1.1 安全认证
以前 Elasticsearch 的安全功能要付费。Open Distro 直接给你免费的:
2.1.2 告警功能
写个查询语句,设个阈值或者自定义脚本,达到条件就发通知。
短信、邮件、钉钉、企业微信,想怎么通知都行。
比如:当错误日志超过 100 条/分钟,立马发短信给运维。
2.1.3 K-NN 算法
这玩意儿是用来做最近邻搜索的。
说人话就是:你有几十亿条数据,想快速找出"最相似"的那些,K-NN 能帮你搞定。
比如推荐系统、图片搜索,都用得上。
2.1.4 索引管理
以前管索引得写脚本或者手动操作。现在在 Kibana 界面上就能搞定:
- 定期备份? 设个策略就行 再也不用担心磁盘爆满了。
2.1.5 性能监控
集群挂了的时候,你最需要的就是监控数据。
但问题是,集群挂了监控也跟着挂。
Open Distro 的性能管理器是独立运行的,集群挂了它还能告诉你哪里出问题了。
2.1.6 SQL 接口
又是 SQL!
说实话,每个非关系型数据库都要搞个 SQL 接口,真不知道为啥。
不过对于习惯写 SQL 的同学来说,确实方便。
2.2 Open Distro 遇到了啥问题
亚马逊本来想让 Open Distro 跟着 Elasticsearch 官方一起更新。
但是,Elastic 公司在代码里加了很多"检查机制",就是不让你用 Open Distro。
双方撕破脸了。
OpenSearch 的开发者 Kyle 说得很直白:Open Distro 就是开源社区对 X-Pack 的回应。
unsetunset三、OpenSearch:彻底分家unsetunset
3.1 为啥要 fork
Elasticsearch 不让用了,那就自己干呗。
OpenSearch 从 Elasticsearch 7.10 版本分支出来,自己单独发展。
这次不是加功能了,是把代码重构。
3.2 都改了些啥
3.2.1 改名字
代码里所有的 Elasticsearch、Kibana,全改成 OpenSearch、OpenSearch Dashboards。
听起来简单吧?
但你想想,几百万行代码,每个变量名、函数名、注释,都得改。
团队花了好几周才搞定。
3.2.2 删功能
这才是最狠的。把 Elasticsearch 里这些东西全删了:
3.2.3 Beats 不能用了
X-Pack 删了,那些依赖 X-Pack 的工具也用不了了。
想用 Beats 收集 Netflows、F5、CoreDNS 日志?
对不起,Beats 会检查你的 Elasticsearch 有没有 X-Pack 许可证,没有就不干活。
解决办法: 换其他日志收集工具,比如 fluentd、logstash。
3.2.4 把 Open Distro 的功能搬过来
Open Distro 加的那些好东西,OpenSearch 全要了。
安全认证、告警、K-NN、索引管理,一个不落。
3.3 X-Pack 到底是个啥
X-Pack 就是当年这场"战争"的导火索。熟悉 Elastic 发展历史的小伙伴,应该对 X-pack 功能非常熟悉。早期版本需要单独安装这个插件的哦。你还记得吗?
Elastic 公司说:我开源,但我用的是 Elastic License。终端用户免费用,但如果你是云厂商,想卖 Elasticsearch 服务,得给我交钱。
亚马逊不乐意了:我也为 Elasticsearch 贡献代码啊,凭啥要给你交钱?
于是就分家了。
3.4 关于"回传数据"
Elastic 在代码里埋了点,会把你的使用情况发回去。
听起来像监控用户? 其实不是,大家可以放心。 Elastic 拿这些数据来改进产品。比如发现很多人在做范围查询,那就优化范围查询的性能。
这个功能可以关,但 OpenSearch 直接把相关代码全删了。
unsetunset四、Easysearch:国产替代方案
unsetunset
4.1 为啥要搞国产化
2021 年,Elasticsearch 把开源协议从 Apache 2.0 改成 SSPL。
SSPL 限制很多,简单说就是:如果你用 Elasticsearch 做云服务,得把你的整个技术栈都开源。
这对国内大型云厂商来说,阿里云、腾讯云估计可以。中小企业,基本不可能。
再加上:
Easysearch 就是在这个背景下,由极限科技(INFINI Labs)团队推出的。
4.2 技术上是怎么搞的
Easysearch 也是从 Elasticsearch 7.10 分支出来的。
但跟 OpenSearch 不一样,Easysearch 是针对国内场景优化的:
- 同时还在跟进 Lucene 的最新版本,不是 fork 了就不管。
4.3 国产化 Easyearch 六大优势
4.3.1 轻量级
安装包不到 60 MB。
Elasticsearch 的安装包有 500 多 MB,差了快 10 倍。
装起来快,启动也快,资源占用还少。
内存和 CPU 占用比 Elasticsearch 低 10%-30%。
对于小团队来说,省钱省服务器。
4.3.2 跨平台
这个"跨平台"不是说 Windows、Linux、macOS。
是说国产 CPU 和操作系统:
- 麒麟、统信、中标麒麟 都能跑,而且都拿到了官方认证。
信创项目用这个,合规没问题。
4.3.3 性能强
官方拿 Nginx 日志做压测:
写入性能比 Elasticsearch 7.10.2 快 40%-70%。
存储压缩率高 2.5-3 倍。
同样的数据,Easysearch 占的磁盘空间只有 Elasticsearch 的三分之一。
这意味着啥?硬件成本能省一大笔。
4.3.4 稳定
Elasticsearch 有不少 bug,比如:
-
- 节点掉线,数据丢失 Easysearch 团队修了一大堆内核问题,在生产环境跑得更稳。
4.3.5 安全
Elasticsearch 的安全功能要付费(X-Pack)。
Easysearch 默认就有,而且是企业级的:
比如:运营只能看订单数据,技术只能看日志数据,互相看不到。
4.3.6 兼容性好
API 和数据格式跟 Elasticsearch 7.x 一样。 迁移的时候:
- SDK 不用换 直接把连接地址改成 Easysearch 的就行。
4.3.7 中文优化
用过 Elasticsearch 的都知道,中文分词得装 ik 插件。
Easysearch 开箱即用,ik、pinyin 都内置了。
而且针对中文做了很多优化:
- 模糊查询 搜"手机"能出来"移动电话",搜"北京"能出来"帝都",这些都不用你自己配。
4.4 企业级功能
除了基础搜索,Easysearch 还有:
这些在 Elasticsearch 里部分为付费功能,要么得自己开发。Easysearch 全给你。
4.5 迁移和运维
怎么迁移??
Easysearch 提供了"极限网关"工具:
- 增量同步:实时同步新数据 业务不用停,等同步完了,改个连接地址,切过去就行。
如果你有 Elasticsearch 的快照备份,也能直接恢复到 Easysearch。
4.6 怎么运维
1.15 版本开始,Easysearch 自带 Web UI(类似简化版 Kibana):
都在界面上操作,不用敲命令行。
还有一键部署脚本,基本不用手动改配置。 分片自动均衡,节点自动恢复,小团队也能稳定运行。
4.7 市场认可度
Easysearch 是国内第一个通过"搜索型数据库产品能力测试"的产品。
在墨天轮搜索型数据库排行榜上,长期排第一。
数据来源:https://www.modb.pro/dbRank4.8 能用在哪些场景
只要是 Elasticsearch 能用的场景,Easysearch 都能用:
- 支持水平扩展,加节点就能扩容,已经有客户跑了 PB 级数据。
unsetunset五、对比一下unsetunset
Elasticsearch 在 7.11 版本后改用三重许可证(AGPL-3.0、SSPL、Elastic License 2.0),其中核心限制来自 SSPL 和 Elastic License 2.0,它们禁止将 Elasticsearch 作为托管服务提供给第三方(比如不能像 AWS 那样提供 Elasticsearch 云服务)。
虽然名义上开源,但实际上是针对云服务商的"防御性许可证",这也是为什么 AWS 分叉出 OpenSearch(保持 Apache 2.0 完全开源)以及国内出现 Easysearch 等替代方案的根本原因。
六 四者关系图
简单说:
Open Distro: 在 Elasticsearch 上加东西,现在不更新了
OpenSearch: fork 了 Elasticsearch,自己单干
Easysearch: 也 fork 了 Elasticsearch,针对国内优化
unsetunset七、怎么选unset
unset
7.1 继续用 Elasticsearch
如果你:
那就继续用。
7.2 选 OpenSearch
如果你:
- 需要活跃的国际社区 那就选 OpenSearch。
7.3 选 Easysearch
如果你:
- 小团队,希望简化运维 那就选 Easysearch。
unsetunset八、未来趋势unsetunset
8.1 OpenSearch 的方向
8.2 Easysearch 的机会
国内市场需求明确:
8.3 整体趋势
搜索引擎市场会越来越分化:
没有一个方案适合所有场景。 选哪个,得看:
unsetunset九、总结unset
unset
Elasticsearch 分叉后形成三大分支:
- Easysearch 专注国产替代与本土优化。 二者均旨在摆脱 Elastic 许可证限制。
- OpenSearch 主打国际化生态,Easysearch 强调国产化适配。
对国内开发者:
- 信创需求选 Easysearch,无要求且追求全球生态选 OpenSearch,深度绑定则续用 Elasticsearch。
技术演进、生态分化带来更多选择,利好开发者。
unsetunset十、相关资源unsetunset
10.1 官网
- https://infinilabs.cn/products/easysearch
10.2 文档
- https://opensearch.org/docs
- https://infinilabs.cn/docs/latest/easysearch
10.3 国产化社区
- https://infinilabs.cn/blog
👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
- 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍;演示地址:
http://116.62.199.48:7070/
- 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
- 专栏阅读地址:https://www.quanxiaoha.com/column
截止目前,累计输出 100w+ 字,讲解图 4013+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有4000+小伙伴加入
最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》
,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。
PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。
点“在看”支持小哈呀,谢谢啦