更新时间:2024-05-07 GMT+08:00

只读节点简介

为了扩展主节点的读请求能力,DDS提供具备独立连接地址的只读节点,适合独立系统直连访问,以缓解大量读请求给主节点造成的压力。

在对数据库没有写请求,但是有大量读请求的应用场景下,数据库的主备节点可能难以承受读取压力,甚至对业务造成影响。为了分担主备节点的访问压力,您可以根据业务需求创建一个或多个只读节点,来满足大量的数据库读取需求,增加应用的吞吐量。

只读节点与备节点(Secondary)的区别

节点

说明

应用场景

备节点

备节点具有高可用保障,备节点和主节点组成高可用切换的能力,即某个主节点故障时,系统会自动切换流量至备节点。相应的,在主节点故障时,每个备节点均有可能被选举为新的主节点,来执行数据写入请求。

主备节点可以使用高可用地址连接实现全局读写分离,适用于读多写少的并发场景。从而在性能扩展的同时,屏蔽节点故障对业务带来的影响。

副本集只读节点

副本集只读节点仅从主节点同步数据,不具备高可用保障,也不会被选举为主节点。只读节点具有独立的连接地址,适合独立系统直连访问,与已有副本集主备节点的连接互不干扰。

适合需要从现有实例中大量读取数据的业务场景。

集群只读节点

集群只读节点具有高可用保障,当某个只读节点故障时,系统自动将其切换至其他可用只读节点或备节点。

集群只读节点具有独立的连接地址,适合独立系统及应用直连访问,与已有主从节点的连接互不干扰。

集群实例提供统一的地址连接所有只读节点,您只需添加只读节点的个数即可扩展数据库的处理能力,应用程序无需做任何修改。

集群只读节点不参与投票选举主节点,不会被选举为主节点。

适合需要从现有实例中大量读取数据,需要读请求负载均衡、只读节点高可用的业务场景。

功能限制

  • 目前仅副本集实例3.4、4.0及4.2版本和集群实例3.4版本支持挂载只读节点。
  • 暂不支持创建带有只读节点的实例。
  • 只读节点仅供读取请求访问,不参与主备节点选举。
  • 单个副本集实例中最多可以添加5个只读节点。详情请参见添加副本集实例只读节点
  • 单个集群实例的每个shard最多可以添加5个只读节点。
  • 主节点和只读节点之间的数据复制方式为异步复制,存在秒级别的延迟。

功能特点

  • 可以根据业务需求随时更改只读节点个数,节省业务成本。
  • 与主节点采用一致规格,自动同步主节点的数据。
  • 不占用主节点的资源,增减只读节点的操作不会对主节点的业务构成干扰。
  • 提供独立的连接地址,适合独立系统及应用直连访问,与已有副本集实例主备节点的连接互不干扰。副本集实例详情请参见通过Mongo Shell连接副本集实例只读节点
  • 提供只读节点系统性能监控。

计费标准

  • 当前实例新增只读节点后,只读节点的虚拟机和磁盘需要额外收费。
  • 单个只读节点的价格等同于副本集实例中单个节点、以及集群Shard节点中单个节点的价格。例如当前规格下,三节点副本集实例的售价为3,000美元,那么单个只读节点的价格即为1,000美元。