클래스: Mongo::Cluster::Topology::Base

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
로깅 가능, 모니터링::게시 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb

개요

모든 토폴로지에 공통적인 동작을 정의합니다.

이후:

  • 2.7.0

직접 알려진 하위 클래스

LoadBalanced, ReplicaSetNoPrimary, Sharded, Single, Unknown

상수 요약

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

Monitoring::Publishable에 포함된 메서드

#publish_cmap_event, #publish_event, #publish_s담_event

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

생성자 세부 정보

#initialize(options, monitoring, cluster) ⇒ Base

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

옵션을 사용하여 토폴로지 를 초기화합니다.

매개변수:

옵션 해시(options):

  • :replica_set (기호)

    연결할 복제본 세트의 이름입니다. 클러스터에서 이름을 검색하기 위해 비워 둘 수 있습니다(nil 또는 빈 string 허용). 주소가 다른 복제본 세트에 속한 경우 어떤 복제본 세트가 선택되었는지 보장되지 않습니다. 특히 드라이버는 다른 복제본 세트에 속하는 프라이머리보다 먼저 응답을 반환하는 경우 세컨더리의 복제본 세트 이름을 선택할 수 있습니다. 이 옵션은 복제본 세트 토폴로지를 인스턴스화할 때만 지정할 수 있습니다.

  • :max_election_id (BSON::ObjectId)

    SDAM 사양에 따른 최대 투표 ID입니다. 이 옵션은 복제본 세트 토폴로지 를 인스턴스화할 때만 지정할 수 있습니다.

  • :max_set_version (정수)

    SDAM 사양에 따른 최대 세트 버전입니다. 이 옵션은 복제본 세트 토폴로지를 인스턴스화할 때만 지정할 수 있습니다.

이후:

  • 2.7.0



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
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 56

def 초기화(옵션, 모니터링, cluster)
  옵션 = validate_options(옵션, cluster)

  @options = 옵션
  @monitoring = 모니터링
  @cluster = cluster
  # 서버 설명 목록은 다음 시점에 고정됩니다.
  # 토폴로지 생성. 나중에 서버 설명이 변경되면
  # 새 토폴로지 인스턴스 를 만들어야 합니다.
  @server_descriptions = {}
  (서버 = cluster.server_list). do |서버|
    @server_descriptions[서버.주소.to_s] = 서버.description
  end

  만약 is_a?(로드 밸런싱)
    @compatible = true
  other
    시작
      server_descriptions. do |주소_str, desc|
        하지 않는 한 desc.알 수 없음?
          desc.기능.check_driver_support!
        end
      end
    구출 오류::지원되지 않는 기능 => e
      @compatible = 거짓
      @compatibility_error = e
    other
      @compatible = true
    end
  end

  @ Have_data_bearing_servers = 거짓
  @logical_session_timeout = server_descriptions.주입(nil) do |min, (주소_str, desc)|
    # LST는 데이터 보유 서버에서만 읽습니다.
    만약 desc.data_bearing?
      @ Have_data_bearing_servers = true
      휴식 하지 않는 한 타임아웃 = desc.logical_session_timeout
      [타임아웃, (min || 타임아웃)].min
    other
      min
    end
  end

  만약 mongo::Lint.활성화?
    동결
  end
end

인스턴스 속성 세부 정보

#compatibility_error예외 (읽기 전용)

반환값 compatibility_error 토폴로지가 드라이버와 호환되지 않는 경우 비호환성에 관한 정보가 포함된 예외가 발생합니다. 토폴로지가 드라이버와 호환되는 경우 nil입니다.

반환합니다:

  • (Exception)

    compatibility_error 토폴로지가 드라이버와 호환되지 않는 경우 비호환성에 관한 정보가 포함된 예외입니다. 토폴로지가 드라이버와 호환되는 경우 nil입니다.

이후:

  • 2.7.0



151
152
153
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 151

def 호환성 오류
  @compatibility_error
end

#logical_session_timeoutInteger? (읽기 전용)

참고:

초 단위로 반환되는 운전자 의 다른 시간과 달리 값은 분 단위입니다.

논리적 세션 시간 초과 값(분)입니다.

반환합니다:

  • (정수, nil)

    논리적 세션 시간 초과입니다.

이후:

  • 2.7.0



161
162
163
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 161

def logical_session_timeout
  @logical_session_timeout
end

#모니터링모니터링 (읽기 전용)

모니터링 모니터링을 반환합니다.

반환합니다:

이후:

  • 2.7.0



118
119
120
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 118

def 모니터링
  @monitoring
end

#options해시 (읽기 전용)

반환값 options options.

반환합니다:

  • (해시)

    options 옵션입니다.

이후:

  • 2.7.0



105
106
107
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 105

def 옵션
  @options
end

#server_descriptions해시 (읽기 전용)

서버 설명에 대한 주소 문자열 맵을 클러스터의 각 서버에 대해 하나씩 server_descriptions를 반환합니다.

반환합니다:

  • (해시)

    server_descriptions 클러스터의 각 서버에 하나씩 주소 문자열을 서버 설명에 매핑합니다.

이후:

  • 2.7.0



136
137
138
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 136

def server_descriptions
  @server_descriptions
end

인스턴스 메서드 세부 정보

주소 # 개 ⇒ Array<String>

주소를 반환합니다. 서버 주소입니다.

반환합니다:

  • (Array<String>)

    주소 MongoDB Server 주소.

이후:

  • 2.7.0



113
114
115
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 113

def 주소
  cluster.주소.map(&:seed)
end

#호환되나요?true|false

반환값 호환 가능 토폴로지가 드라이버와 호환되는지 여부를 반환합니다.

반환합니다:

  • (true|false)

    호환 가능한 토폴로지 가 운전자 와 호환되는지 여부입니다.

이후:

  • 2.7.0



142
143
144
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 142

def 호환되나요?
  @compatible
end

#data_bearing_servers?true | false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 have_data_bearing_servers 논리적 세션 시간 초과 계산을 위해 토폴로지 에 데이터 보유 서버가 있는지 여부를 반환합니다.

반환합니다:

  • (true | false)

    have_data_bearing_servers 논리적 세션 시간 초과 계산을 위해 토폴로지 에 데이터 보유 서버가 있는지 여부입니다.

이후:

  • 2.7.0



168
169
170
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 168

def data_bearing_servers?
  @ Have_data_bearing_servers
end

#max_election_idBSON::ObjectId

프라이머리에서 보고한 것 중 가장 큰 ElectionId입니다. nil일 수 있습니다.

반환합니다:

  • (BSON::ObjectId)

    투표 ID입니다.

이후:

  • 2.7.0



178
179
180
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 178

def max_election_id
  옵션[:max_election_id]
end

#max_set_versionInteger

프라이머리가 보고한 것 중 가장 큰 setVersion입니다. nil일 수 있습니다.

반환합니다:

  • (정수)

    설정하다 버전입니다.

이후:

  • 2.7.0



188
189
190
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 188

def max_set_version
  옵션[:max_set_version]
end

#new_max_election_id(설명) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.7.0



193
194
195
196
197
198
199
200
201
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 193

def new_max_election_id(description)
  만약 description.Election_id &&
      (max_election_id.nil? ||
          description.Election_id > max_election_id)
    description.Election_id
  other
    max_election_id
  end
end

#new_max_set_version(설명) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

이후:

  • 2.7.0



204
205
206
207
208
209
210
211
212
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 204

def new_max_set_version(description)
  만약 description.set_version &&
      (max_set_version.nil? ||
          description.set_version > max_set_version)
    description.set_version
  other
    max_set_version
  end
end

#replica_set_namestring

이 토폴로지에 대해 구성된 복제본 세트 이름을 가져옵니다.

예시:

복제본 세트 이름을 가져옵니다.

topology.replica_set_name

반환합니다:

  • (string)

    구성된 복제본 세트의 이름입니다.

이후:

  • 2.0.0



128
129
130
# 파일 'build/ruby-driver-v2.19/lib/mongo/cluster/topology/base.rb', 줄 128

def replica_set_name
  옵션[:replica_set_name]
end