2016-11-29 4 views
0

모든 클라이언트가이 서버에 연결하는 서버이 있습니다. 동시에 최대 100 명의 연결된 사용자가 될 수 있습니다 (이상인지는 모르겠습니다). 클라이언트는 소켓 (TCP/IP)을 통한 안드로이드, 웹 및 데스크탑 어플리케이션입니다.얼마나 많은 사용자가 One MongoDB C++ 드라이버를 통해 연결할 수 있습니까?

서버만이 MongoDB의 데이터를 연결하고 쿼리합니다.

서버 응용 프로그램이 시작될 때 한 번 드라이버가 시작되고 연결이 들어 오면 서버는 스레드를 만들고 연결 당 MongoDB client을 만듭니다. 여기에 주요한 의혹이 있습니다.

MongoDB 드라이버가 결함이 있습니까? 사용자 수를 늘리면이 방법으로 문제가 발생할 수 있습니까?

내 PC에서 86 연결을 시도했지만 성능이나 드라이버에 문제가 없습니다.

감사

답변

1

한계는 정말 메모리의 기능, 그래서 당신에게 특정 번호를 알 수있는 방법은 없습니다.

여기에 두 가지 고려 사항 :

  • 서버가 오직 인증 자격 증명의 하나의 세트로 데이터베이스에 연결하는 경우, 당신은 하나의 mongocxx::pool 객체를 생성 한 후 체크 아웃 오프 최고야 연결 스레드에서 풀의 클라이언트. 리소스 소비를 관리하기 위해 풀 크기를 조정할 수 있습니다.

  • 각 클라이언트 연결에 인증 자격증 명이 필요하면 각 스레드에 mongocxx::client 개체를 만들어야합니다. 이렇게하면 더 많은 메모리가 사용되며 각 클라이언트가 데이터베이스에 대한 새 연결을 만들 때 대기 시간이 훨씬 길어집니다 (풀 사례와 같이 연결을 다시 사용하는 대신).