首页 > 编程知识 正文

elasticsearch集群,各种数据库集群half

时间:2023-05-04 08:19:34 阅读:23780 作者:327

ElasticSearch (以下简称ES )作为搜索引擎,能够存储大量数据,在非常短的时间内检索到APP应用系统期望的信息,由于组件是开源的,因此被广泛使用。 在项目中使用ES时,通常使用群集模式而不是独立模式。 为什么会这样呢? 集群模式与独立模式相比有什么好处? 简单总结如下。

1. 高可用性

作为搜索引擎,ES的基本要求是能够存储大量数据并在非常短的时间内查询所需的信息。 因此,第一步必须保证ES的高可用性。 什么是高可用性? 通常意味着在设计中减少系统无法提供服务的时间。 假设系统始终可以提供服务,则系统可用性为100%。 如果某个时间点系统故障,例如某个时间点站点故障,可以说它暂时不可用。 因此,为了保证ES的高可用性,需要尽量减少ES的不可用时间。

那么,如何提高ES的高可用性呢? 这个时候,集群的作用出现了。 如果ES仅位于一台服务器上,也就是说,它是独立运行的,则如果此主机突然断开网络或受到攻击,整个ES的服务都将不可用。 但是,如果更改为ES群集,则一台主机将关闭,其他主机可以支持,并确保服务可用。

有些合作伙伴可能会说,如果主机故障,主机上的数据会不会变得无法访问? 如果我要访问的数据正好存在于此主机上,那不是无法获取吗? 其他主机上是否也存储了一模一样的数据? 那不是很可惜吗?

为了解决这个问题,这里引出了ES的信息存储机构。 首先解决上述问题,即使一台主机停机,该主机上存储的数据仍然可以访问。 其他主机也有备份,但在备份时不是整个主机的备份,而是分片备份,所以这里出现了分片的概念。

瓷砖、英语被称为Shard、精明的铅笔,瓷砖是将数据分割成多个部分而成的。 我们知道ES的索引(Index )相当于数据库。 例如,如果要存储某个站点的用户信息,请创建一个名为user的索引。 但是,索引存储时并不是整体存储在一起,而是切片存储。 默认情况下,ES将一个索引拆分为五个切片。 当然,这个数字可以定制。 分片是数据的容器,数据存储在分片中,分片分配给群集中的每个节点。 当失眠的大米集群规模扩大或缩小时,ES会自动将区块迁移到各个节点,数据均匀分布在集群中,因此相当于一个数据被分割成多个并存储在不同的主机上。

那个还是没有解决问题呢。 如果一台主机锁定,是不是就无法访问此分片中的数据了? 其他主机都是存储的其他分片。 实际上可以访问。 由于其他主机存储了此分片的备份(称为拷贝),因此在此出现了另一种称为拷贝的概念。

副本在英语中被称为Replica,同样是一支精明的铅笔。 副本是原始拼贴的副本,与原始拼贴的内容相同。 默认情况下,ES生成一份副本,因此相当于五个原始拼贴和五个拼贴的副本。 相当于一份数据保存两份,分成10个分片,当然副本的数量也可以定制。 此时,只需将片的副本保存到其他主机上。 这样,即使一台主机停机,也可以从另一台主机的副本中找到相应的数据。 所以,从外部来看,数据结果没有任何区别。

一般来说,ES会尽量在不同的主机上存储一个索引不同的片,并且片的副本也尽可能位于不同的主机上,从而提高容错能力和高可用性。

如果只有一台主机的话,不是也没办法吗? 瓷砖和拷贝实际上没有意义,当一台主机锁定时,它们全部锁定。

2. 健康状态

对于一个索引,ES实际上有衡量索引健康状况的专用标志,分为以下三个等级。

绿色。 绿色。 指示所有主拼贴和副本拼贴都已分配。 集群100%可用。 黄色。 黄色表示所有主拼贴都已拼贴,但至少缺少一个副本。 因为数据不会丢失,所以搜索结果保持完整。 但是,你的高可用性在某种程度上被弱化了。 如果更多的瓷砖消失,数据就会丢失。 所以yellow可以被认为是需要及时调查的警告。 红色。 红色表示至少缺少一个主拼贴及其所有副本。 也就是说,如果数据不足,搜索将只返回部分数据,而分配给此片的写请求将返回异常。 如果你只有一台主机,其实索引的健康状况也是yellow。 因为只有一台主机,而且没有其他主机可以放置副本,所以这是不健康的情况,为此也需要足够的群集。

3. 存储空间

既然是群集,存储空间也一定是协同工作的。 如果一台主机的存储空间是固定的,则群集相对于独立的主机也有更多的存储空间,并且可以存储更多的数据。

综上所述,在项目中使用ES时,一般采用集群模式而不是独立模式。

文章参考:

手把手地教你构建电子搜索集群

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。