类:Mongo::Cluster::Topology::Base
- 继承:
-
对象
- 对象
- Mongo::Cluster::Topology::Base
- 扩展方式:
- 可转发
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb
Overview
定义所有拓扑共有的行为。
直接已知子类
LoadBalanced 、 ReplicaSetNoPrimary 、 Sharded 、 Single 、 Unknown
常量摘要
Loggable中包含的常量
实例属性摘要折叠
-
# Compatibility_error ⇒ 异常
只读
Compatibility_error 如果拓扑结构与驾驶员不兼容,则引发异常,其中包含有关不兼容的信息。
-
#logical_session_timeout ⇒ Integer?
只读
逻辑会话超时值(以分钟为单位)。
-
#monitoring ⇒ monitoring
只读
监控监控。
-
# options ⇒ 哈希
只读
选项 选项。
-
# server_descriptions ⇒ 哈希
只读
Server_descriptions 地址字符串到服务器描述的映射,集群中的每台服务器都有一个映射。
实例方法摘要折叠
-
#addresses ⇒ Array<String>
地址MongoDB Server地址。
-
#兼容? ⇒ true|false
Compatable 拓扑结构是否与驱动程序兼容。
-
# data_ Bearing_servers? ⇒ true | false
private
have_data_ Bearing_servers 拓扑结构是否具有任何数据承载服务器,用于逻辑会话超时计算。
-
#initialize (options, Monitoring, cluster) ⇒ 基础
构造函数
private
使用选项初始化拓扑结构。
-
# max_election_id ⇒ BSON::ObjectId
主节点报告的最大的 ElectionId。
-
#max_set_version ⇒ Integer
主节点报告的最大 setVersion。
- # new_max_election_id (description) ⇒ 对象 private
- # new_max_set_version (description) ⇒ 对象 private
-
# replica_set_name ⇒ string
获取为此拓扑配置的副本集名称。
Monitoring::Publishable 中包含的方法
#publish_cmap_event 、 #publish_event 、 #publish_sdam_event
Loggable中包含的方法
#log_debug 、 #log_error 、 #log_ Fatal 、 #log_info 、 #log_warn 、 #logger
构造函数详情
#initialize (options, Monitoring, cluster) ⇒基础
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
使用选项初始化拓扑结构。
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第56行 def 初始化(, 监控, 集群) = (, 集群) @options = @monitoring = 监控 @cluster = 集群 # 服务器描述列表在 # 拓扑创建。 如果服务器描述稍后发生变化, # 应创建新的拓扑结构实例。 @server_descriptions = {} (服务器 = 集群.server_list).每 do |server| @server_descriptions[server.地址.to_s] = server.描述 end if is_a?(LoadBalanced) @兼容 = true else 开始 server_descriptions.每 do |Address_str, desc| 除非 desc.未知? desc.功能.check_driver_support! end end 救援 错误::不支持的功能 => e @兼容 = false @compatibility_error = e else @兼容 = true end end @have_data_ Bearing_servers = false @logic_session_timeout = server_descriptions.注入(nil) do |min, (Address_str, desc)| # 只能从承载数据的服务器读取 LST if desc.data_ Bearing? @have_data_ Bearing_servers = true 中断 除非 超时 = desc.logic_session_timeout [超时, (min || 超时)].min else min end end if mongo::Lint.已启用? 冻结 end end |
实例属性详细信息
# Compatibility_error ⇒异常(只读)
返回 Compatibility_error 如果拓扑与驱动程序不兼容,则返回包含有关不兼容信息的异常。 如果拓扑结构与驱动程序兼容,则返回 nil。
151 152 153 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第151行 def Compatibility_error @compatibility_error end |
#logic_session_timeout ⇒整数? (只读)
该值以分钟为单位,与驾驶员中的大多数其他时间以秒为单位返回不同。
逻辑会话超时值(以分钟为单位)。
161 162 163 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第161行 def logic_session_timeout @logic_session_timeout end |
#监控⇒监控(只读)
返回监控监控。
118 119 120 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第118行 def 监控 @monitoring end |
# options ⇒哈希(只读)
返回 options 选项。
105 106 107 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第105行 def @options end |
# server_descriptions ⇒哈希(只读)
返回 server_descriptions 地址字符串到服务器描述的映射,集群中的每台服务器都有一个映射。
136 137 138 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第136行 def server_descriptions @server_descriptions end |
实例方法详细信息
#addresses ⇒ Array<String>
返回地址 服务器地址。
113 114 115 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第113行 def 地址 集群.地址.map(和:seed) end |
#兼容? ⇒ true|false
返回兼容拓扑结构是否与驱动程序兼容。
142 143 144 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第142行 def 兼容? @兼容 end |
# data_ Bearing_servers? ⇒ true | false
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回 have_data_ Bearing_servers拓扑结构是否具有任何数据承载服务器,以用于逻辑会话超时计算。
168 169 170 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第168行 def data_ Bearing_servers? @have_data_ Bearing_servers end |
# max_election_id ⇒ BSON::ObjectId
主节点报告的最大的 ElectionId。 可能为零。
178 179 180 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第178行 def max_election_id [:max_election_id] end |
#max_set_version ⇒ Integer
主节点报告的最大 setVersion。 可能为零。
188 189 190 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第188行 def max_set_version [:max_set_version] end |
# new_max_election_id (description) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
193 194 195 196 197 198 199 200 201 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第193行 def new_max_election_id(描述) if 描述.election_id && (max_election_id.nil? || 描述.election_id > max_election_id) 描述.election_id else max_election_id end end |
# new_max_set_version (description) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
204 205 206 207 208 209 210 211 212 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第204行 def new_max_set_version(描述) if 描述.set_version && (max_set_version.nil? || 描述.set_version > max_set_version) 描述.set_version else max_set_version end end |
# replica_set_name ⇒ string
获取为此拓扑配置的副本集名称。
128 129 130 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/cluster/topology/base.rb', 第128行 def replica_set_name [:replica_set_name] end |