为生产做好准备

编辑

许多团队依赖 Elasticsearch 来运行其关键服务。为了保持这些服务的运行,您可以设计 Elasticsearch 部署,即使在发生大规模中断的情况下也能保持 Elasticsearch 的可用性。为了使其运行速度快,您还可以设计您的部署以响应生产工作负载。

Elasticsearch 的构建旨在始终可用并随您的需求扩展。它通过使用分布式架构来实现这一点。通过分发您的集群,您可以保持 Elastic 在线并响应请求。

在发生故障时,Elasticsearch 提供了跨集群复制和集群快照工具,可以帮助您快速回退或恢复。您还可以使用跨集群复制来根据用户和资源的地理位置来提供请求。

Elasticsearch 还提供安全性和监控工具,以帮助您保持集群的高度可用性。

使用多个节点和分片

编辑

节点和分片是使 Elasticsearch 具有分布式和可扩展性的原因。

如果您刚开始使用,这些概念并不是必不可少的。您在生产环境中如何部署 Elasticsearch 决定了您需要了解的内容

  • 自管理 Elasticsearch:您负责设置和管理节点、集群、分片和副本。这包括管理底层基础设施、扩展以及通过故障转移和备份策略确保高可用性。
  • Elastic Cloud:Elastic 可以根据工作负载的变化自动扩展资源。从不同的部署类型中进行选择,为您的用例应用合理的默认值。对节点、分片和副本的基本了解仍然很重要。
  • Elastic Cloud Serverless:您无需担心节点、分片或副本。这些资源在无服务器平台上 100% 自动化,该平台旨在根据您的工作负载进行扩展。

您可以向集群添加服务器(节点)以增加容量,并且 Elasticsearch 会自动将您的数据和查询负载分布到所有可用的节点上。

Elastic 能够通过将索引细分为分片来在节点之间分配您的数据。Elasticsearch 中的每个索引都是一个或多个物理分片的集合,其中每个分片都是一个独立的 Lucene 索引,包含索引中一部分文档。通过将索引中的文档分布到多个分片中,并将这些分片分布到多个节点中,Elasticsearch 提高了索引和查询容量。

分片有两种类型:分片和副本分片。索引中的每个文档都属于一个主分片。副本分片是主分片的副本。副本在集群中的节点之间维护数据的冗余副本。这可以防止硬件故障,并提高服务于读取请求(如搜索或检索文档)的容量。

索引中主分片的数量在创建索引时是固定的,但副本分片的数量可以随时更改,而不会中断索引或查询操作。

集群中的分片副本会自动在节点之间进行平衡,以提供可扩展性和高可用性。所有节点都知道集群中的所有其他节点,并且可以将客户端请求转发到适当的节点。这使 Elasticsearch 能够在整个集群中分配索引和查询负载。

如果您是首次探索 Elasticsearch 或在开发环境中使用,那么您可以使用具有单个节点的集群,并创建只有一个分片的索引。但是,在生产环境中,您应该构建具有多个节点的集群和具有多个分片的索引,以提高性能和弹性。

要了解如何优化集群中分片的数量和大小,请参阅调整分片大小。要了解如何跨分片和分片副本复制读取和写入操作,请参阅读取和写入文档。要调整如何在节点之间分配和平衡分片,请参阅分片分配、重新定位和恢复

用于灾难恢复和地理邻近的 CCR

编辑

为了有效地在节点之间分配读取和写入操作,集群中的节点需要彼此之间建立良好、可靠的连接。为了提供更好的连接,您通常将节点放置在同一数据中心或附近的数据中心中。

将节点放置在单个位置会使您面临单个中断使整个集群脱机的风险。为了保持高可用性,您可以准备第二个集群,以防万一发生灾难时可以通过实施跨集群复制 (CCR) 来接管。

CCR 提供了一种自动将索引从主集群同步到可用作热备份的辅助远程集群的方法。如果主集群失败,则辅助集群可以接管。

您还可以使用 CCR 创建辅助集群,以便在地理上接近您的用户的地方服务读取请求。

了解有关跨集群复制为弹性设计的更多信息。

您还可以创建集群的快照,以便在发生故障时进行还原。

安全和监控

编辑

与任何企业系统一样,您需要工具来保护、管理和监视您的 Elasticsearch 集群。集成到 Elasticsearch 中的安全性、监视和管理功能使您可以使用 Kibana 作为管理集群的控制中心。

了解有关保护 Elasticsearch 集群的信息.

了解有关监视您的集群的信息.

集群设计

编辑

Elasticsearch 提供了许多选项,使您可以配置集群以满足您组织的目标、要求和限制。您可以查看以下指南,以了解如何调整集群以满足您的需求

许多 Elasticsearch 选项都带有不同的性能考虑因素和权衡取舍。确定您的用例的最佳配置的最佳方法是通过使用您自己的数据和查询进行测试