有多少用户可以通过 One MongoDB C++ 驱动程序连接?
How many Users can connect through the One MongoDB C++ driver?
我有一个服务器,所有客户端都连接到这个服务器。最多可同时连接 100 个用户(我不知道是否超过)。客户端是 Android,通过套接字 (TCP/IP) 的 Web 和桌面应用程序。
只有 服务器 连接并查询来自 MongoDB 的数据。
服务器应用程序在启动时加载 MongoDB C++
驱动程序,如果连接传入,服务器会为每个连接创建一个线程和 MongoDB client
。这是主要的怀疑。
MongoDB 驱动程序是否出现故障?
如果用户数增加很多,这种方式会不会有问题?
我从我的 PC 上尝试了 86 连接,性能或驱动程序都没有问题。
谢谢
限制实际上取决于您的记忆力,因此无法告诉您具体数字。
这里有两个注意事项:
如果您的服务器仅使用一组身份验证凭据连接到数据库,那么您最好创建一个mongocxx::pool 对象,然后在连接线程中从池中检出客户端。您可以调整池的大小以管理资源消耗。
如果每个客户端连接都需要单独的身份验证凭据 到数据库,那么您需要在每个线程中创建一个mongocxx::client 对象。这将使用更多的内存并具有更高的延迟,因为每个客户端都将创建到数据库的新连接(而不是像池中那样重用连接)。
我有一个服务器,所有客户端都连接到这个服务器。最多可同时连接 100 个用户(我不知道是否超过)。客户端是 Android,通过套接字 (TCP/IP) 的 Web 和桌面应用程序。
只有 服务器 连接并查询来自 MongoDB 的数据。
服务器应用程序在启动时加载 MongoDB C++
驱动程序,如果连接传入,服务器会为每个连接创建一个线程和 MongoDB client
。这是主要的怀疑。
MongoDB 驱动程序是否出现故障? 如果用户数增加很多,这种方式会不会有问题?
我从我的 PC 上尝试了 86 连接,性能或驱动程序都没有问题。
谢谢
限制实际上取决于您的记忆力,因此无法告诉您具体数字。
这里有两个注意事项:
如果您的服务器仅使用一组身份验证凭据连接到数据库,那么您最好创建一个mongocxx::pool 对象,然后在连接线程中从池中检出客户端。您可以调整池的大小以管理资源消耗。
如果每个客户端连接都需要单独的身份验证凭据 到数据库,那么您需要在每个线程中创建一个mongocxx::client 对象。这将使用更多的内存并具有更高的延迟,因为每个客户端都将创建到数据库的新连接(而不是像池中那样重用连接)。