AutoReconnect 예외 "마스터가 변경되었습니다"
올바른 접근 방식을 이해하는 데 문제가 있습니다.
구성원이 세 명인 mongodb 복제본 세트(표준 마스터-슬레이브-슬레이브)에 연결되어 있습니다.마스터가 일관성을 유지할 때 연결 상태에서 모든 것이 정상적으로 작동합니다.
pymongo.Connection(['host1:27017','host2:27018','host3:27019']).database_test
어떤 이유로 복제본이 기본 단계를 설정하면 새 기본 단계가 선택된 후에도 사라지지 않는 자동 연결 예외가 발생하기 시작합니다.
이제 저는 이 예외를 포착하고 처리해야 한다는 것을 알고 있으며, 아마도 새로운 경선이 선출되기를 기다리는 것으로 알고 있습니다.제가 안고 있는 문제는 일단 새로운 경선이 정해지면 전혀 개의치 않는 것 같습니다.이 "마스터가 변경되었습니다" 예외가 계속 발생합니다.
연결을 인쇄하는 중__dict__
에는 세 개의 호스트가 모두 나와 있습니다.
나는 패스를 시도했습니다.replicaset
연결에 대해 왜곡하지만, 이것은 예상치 못한 주장으로 나옵니다.
이런 종류의 연결이 새로운 프라이머리에 대해 쿼리를 시작하지 않는 이유가 있습니까?
편집:
이와 같은 문제가 현재 배포 서버에서 나타나고 있는 것으로 보입니다.마스터가 전혀 변경되지 않고 새 기본이 선택된 후에도 사라지지 않는 경우 자동 연결 예외가 발생합니다.
Pymongo는 버전 2.2 및 mongodb 버전 2.0.2입니다.pymongo 코드(mongouri 대 호스트 목록)에서 연결이 정의되는 방식을 변경해도 영향을 받지 않습니다.서비스를 되살리는 유일한 방법은rs.stepDown()
원래 마스터가 다시 기본 마스터가 될 때까지 다른 호스트.
당신이 설명하는 행동은 버그입니다.가능한 최선의 방법은 버그가 기록되어 있는지 확인하고 질문에서 버그에 연결하는 것입니다.질문이 거의 1년이 지났기 때문에 버그가 닫힐 것으로 예상됩니다(해당 여부는 jira.mongodb.org/browse/SERVER-4405 에서 확인하십시오).
MongoDB 2.2 이상으로 업그레이드하면 문제가 해결됩니다.
언급URL : https://stackoverflow.com/questions/8506753/autoreconnect-exception-master-has-changed
'programing' 카테고리의 다른 글
의 Generics 사용 예.네트(C#/VB).NET) (0) | 2023.05.10 |
---|---|
val()은 jQuery에서 변경()을 트리거하지 않습니다. (0) | 2023.05.10 |
Python Panda는 데이터 프레임이 비어 있지 않은지 확인합니다. (0) | 2023.05.10 |
전체 파일을 로드하지 않고 XLS 파일에서 시트 이름을 가져오는 방법은 무엇입니까? (0) | 2023.05.10 |
Git 빨리 감기 VS 빨리 감기 병합 안 함 (0) | 2023.05.10 |