极客视点
极客时间编辑部
极客时间编辑部
113240 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:23
登录|注册

Elasticsearch技术方案选型的10个注意点

讲述:丁婵大小:2.46M时长:05:23
目前,Elasticsearch 被广泛使用,也越来越受到欢迎。这不单单是因为它的典型特征,比如易于部署、无需额外的软件即可扩展到数百个节点、内置 RESTful API、上手快、开源、更新快、社区活跃等。更重要的是 Elastic 已经形成了包含 Elasticsearch、logstash、kibana、Beats 等的 Elastic Stack 一体化解决方案。
Metaversant 创始人 Jeff Potts 以 15 年国外经典博客的框架为线索,剔除过时的技术体系、技术栈内容,结合近千万级业务场景和最新 Elastic 技术洞察梳理出 Elasticsearch 方案选型必须了解的 10 件事。

1. 集群规模

Elasticsearch 的优点在于它非常容易扩展,但索引和查询时间可能因许多因素而异。在集群规模层面一方面要考虑数据量,另一方面比较重要的衡量因素是项目 / 产品的指标要求。
要想达到吞吐量和 CPU 利用率的指标要求,建议进行一定量的测试,以确认集群承担的负载和性能瓶颈问题。

2. 节点职责

Elasticsearch 节点可以是主节点(Master),数据节点(Data),客户端 / 路由节点(Client)或某种组合。 许多开发者大规模集群选择专用主节点(至少 3 个),然后选择一些数据和客户端节点。对此,建议职责分离,并针对特定工作负载优化每种类型的节点的分配。

3. 安全

近期,未加任何安全防护措施的 Elastic 安全事件频发。建议在应用程序 API 和 Elasticsearch 层之间以及 Elasticsearch 层和内部网络之间保护 Elasticsearch 集群。

4. 数据建模

在进行数据建模时,建议业务层面使用别名进行检索、聚合操作。这样做的好处是将应用和索引名称隔离,也可以方便的实现跨索引检索。另外,针对数据类型选型,若不指定数据类型的动态映射机制,建议根据业务场景需求,静态的手动指定好每个字段的数据类型。
考虑因素包含但不限于:
是否需要索引;
是否需要存储;
是否需要分词;
是否需要聚合;
是否需要多表关联(nested 类型、join 或者是宽表存储);
是否需要快速响应(keyword 和 long 类型选型)

5. 检索选型

Elasticsearch 查询 DSL 非常庞大。如果业务场景不需要计算评分,推荐使用过滤器 filter。检索选型前,建议通过 Demo 验证一下是否符合预期。了解如何编写高效查询是一回事,但让它们返回最终用户期望的结果是另一回事。业务实战中,建议花一些时间调整分析器、分词和评分,以便 ES 返回期望正确的命中。

6. 监控和警报

请务必考虑一个完全独立的“监视”集群机制,该机制仅用于捕获有关群集运行状况的统计信息,并在出现问题时提醒开发者。监控的作用是能通过可视化的方式,直观的看到内存、JVM、CPU、负载、磁盘等的使用情况,以对可能的突发情况及早做出应对方案。警报的作用就是异常实时预警。

7. 节点配置和配置管理

一旦拥有多个节点,就每个节点在软件版本、配置等方面保持同步变得具有挑战性。有许多开源工具可以帮助解决这个问题,比如 Chef 和 Ansible 帮助管理 Elasticsearch 集群。

8. 备份和恢复

对于高可用性的业务系统,数据的备份功能非常重要,它可以恢复误删除的数据。 由于数据的存储可能会涉及多个节点,依赖 OS 级文件系统备份可能会很冒险。推荐使用 Elasticsearch 内置的“ 快照”功能,可以备份索引。

9.API 选型

Elastic 官方支持 API 包含 JAVA、JavaScript、PHP、Python 等等,民间 API(社区贡献)也非常庞大,包括 C++、Go 等 20 多种。对于 API 选型,推荐使用官方 API。因为其版本更新及时、新特性支持适配更新及时。此外,DSL 开发推荐使用的 Kibana 的 Dev-tool,非常高效、方便。

10. 数据接入

将数据索引到 Elasticsearch 很容易。 根据数据源和其他因素,开发者可以自己编写,也可以使用 Elastic 中的 Logstash 工具。Logstash 可以查看日志文件或其他输入,然后有效地将数据索引到集群中。
以上就是今天的内容,在选型中,建议综合对比性能和稳定性,找适合自己业务场景的最重要。
原文链接:http://t.cn/EMUZw6N
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 卡斯瓦德
    elk或者说elkk一般用于监控的话,filter应该就够了,如果是用于检索,可能dsl产生的score就是过不去的坎,至于监控,其实可以按时间将不需要的数据去除,不如24小时内保留1分钟,7天内保留15分钟,1月内保留1个小时,再过长就1天几个封顶,当然了这样对于事故追溯会有点影响,感觉elk主要就是数据大数据检索速度快
    1
收起评论
大纲
固定大纲
1. 集群规模
2. 节点职责
3. 安全
4. 数据建模
5. 检索选型
6. 监控和警报
7. 节点配置和配置管理
8. 备份和恢复
9.API 选型
10. 数据接入
显示
设置
留言
1
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部