【蓝因子教育】Read Preference
2025-03-04
Read Preference 是 mongodb 如何将读操作分配到节点中,默认情况下,应用程序将其读取操作定向到副本集中的主要成员(即读取首选项模式 “primary”)。 但是,客户端可以指定读取首选项以将读取操作发送到辅助节点。Read Preference 模式如下:
- primary: 默认规则,所有读请求发到 Primary
- primaryPreferred: Primary 优先,如果 Primary 不可达,请求 Secondary
- secondary: 所有的读请求都发到 secondary
- secondaryPreferred:Secondary 优先,当所有 Secondary 不可达时,请求 Primary
- nearest:读请求发送到最近的可达节点上(通过 ping 探测得出最近的节点)
️以下是使用读取首选项模式的常见用例:
- 为地理分布的应用程序提供本地读取。
- 如果您在多个数据中心中安装了应用程序服务器,则可以考虑使用地理位置分散的副本集并使用非主要或最近的读取首选项。 这允许客户端从最低延迟成员读取,而不是始终从主要成员读取。
- 在故障转移期间维护可用性。
- 如果希望应用程序在正常情况下从主数据库读取,则允许使用 primaryPreferred,但在主数据库不可用时允许从辅助服务器读取过时的数据。 这为故障转移期间的应用程序提供了 “只读模式”。