Docs 菜单
Docs 主页
/ /
Atlas App Services
/

读取偏好

在此页面上

  • Overview
  • 何时指定读取偏好(read preference)
  • 步骤

您可以为 链接的MongoDB Atlas 群集 配置 读取偏好(read preference) ,以控制Atlas App Services将数据库读取请求路由到的 副本集 节点的类型。您还可以指定标签集来定位副本集的特定成员。

您无法在联合数据源上设置读取偏好(read preference)。

默认情况下, Atlas App Services使用读取偏好 primary,即通过副本集的主节点路由所有读取请求。

对于大多数使用案例, 默认的读取偏好(read preference) ( primary ) 应足够。当需要执行以下操作时,请考虑指定集群读取偏好(read preference):

  • 从具有自定义配置的特定从节点读取,例如具有针对报告工作负载而优化的特殊索引的分析节点。

  • 从全球分布的副本集的特定地区中的节点读取。

  • 在副本集故障转移期间保持读取可用性,即在没有primary节点时继续读取可能过时的数据。

1

您可以从App Services用户界面的集群配置屏幕配置关联集群的读取偏好(read preference)。 要进入配置屏幕,请单击左侧导航栏中Linked Data Sources Manage下方的 。在数据源列表中,选择要配置读取偏好(read preference)的集群。

2

在集群配置屏幕上,从Read Preference下拉列表中选择一种模式。

读取偏好(read preference)下拉菜单

以下读取偏好模式可用:

模式
说明
Atlas App Services将所有读取操作路由到当前副本集主节点。 这是默认的读取偏好模式。
Atlas App Services将所有读取操作路由到当前副本集主节点(如果可用)。 如果主 节点 不可用,例如在 自动故障转移 期间,读取请求将路由到从节点。
Atlas App Services将所有读取操作路由到当前副本集从节点之一。
Atlas App Services将所有读取操作路由到副本集的可用从节点之一。 如果没有可用的从节点,则读取请求将路由到副本集节点。
Atlas App Services将读取操作路由到相对于客户端具有最低网络延迟的副本集成员
3

如果指定primary以外的读取偏好(read preference),则还可以指定一个或多个读取偏好(read preference)标记。 要提供服务读取请求,副本集成员必须在其节点配置中包含所有指定的读取偏好(read preference)标签。

注意

Atlas 集群标签集

MongoDB Atlas集群根据成员类型为每个成员节点配置了预定义的标签集。 有关哪些标签是Atlas 集群中定义的节点的详细信息,请参阅Atlas副本集标签。

要指定读取偏好标签,请单击Add Tag ,然后在Read Preference Tags表的新行中输入标签的KeyValue

读取偏好(read preference)标签表
4

指定Read Preference和任意Read Preference Tags后,单击Save 。 保存后,App Services 会根据您的偏好路由集群的所有传入数据库读取请求。

1

要使用App Services CLI定义关联集群的读取偏好(read preference),您需要应用程序配置文件的本地副本。

要提取最新版本应用的本地副本,请运行以下命令:

appservices pull --remote="<Your App ID>"

提示

您还可以从 App Services 用户界面的Deploy > Export App屏幕下载应用程序配置文件的副本。

2

要为关联集群配置读取偏好(read preference),请打开集群的config.json文件并设立config.readPreference的值:

/data_sources/<Service Name>/config.json
{
"name": "<MongoDB Service Name>",
"type": "mongodb-atlas",
"config": {
"readPreference": "<Read Preference Mode>"
}
}

以下读取偏好模式可用:

模式
说明
Atlas App Services将所有读取操作路由到当前副本集主节点。 这是默认的读取偏好模式。
Atlas App Services将所有读取操作路由到当前副本集主节点(如果可用)。 如果主 节点 不可用,例如在 自动故障转移 期间,读取请求将路由到从节点。
Atlas App Services将所有读取操作路由到当前副本集从节点之一。
Atlas App Services将所有读取操作路由到副本集的可用从节点之一。 如果没有可用的从节点,则读取请求将路由到副本集节点。
Atlas App Services将读取操作路由到相对于客户端具有最低网络延迟的副本集成员
3

如果指定primary以外的读取偏好(read preference),则还可以指定一个或多个读取偏好(read preference)标签。 要提供服务读取请求,副本集成员必须在其节点配置中包含所有指定的读取偏好(read preference)标签。 要为集群指定读取偏好(read preference)标签集,请确保您指定了除primary readPreference然后将一个或多个标签定义对象添加到config.readPreferenceTagSets

/data_sources/<Service Name>/config.json
{
"name": "<MongoDB Service Name>",
"type": "mongodb-atlas",
"config": {
"readPreference": "<Read Preference Mode (other than primary)>",
"readPreferenceTagSets": [
{ <Tag Key>: <Tag Value> },
...
],
}
}

注意

Atlas 集群标签集

Atlas集群根据成员类型为每个成员节点配置预定义的标签集。 有关哪些标签是Atlas 集群中定义的节点的详细信息,请参阅Atlas副本集标签。

4

为集群设立读取偏好(read preference)后,您可以将更新的配置推送到远程应用。 App Services CLI在推送更新时立即部署更新。

appservices push --remote="<Your App ID>"

后退

从客户端应用程序中查询 Atlas