Я чувствую, что этот вопрос был задан раньше, но я не могу его найти. Простите меня, если это повторение.Check queued reads/write for MongoDB
Я строю службу на Node.js, размещенной в Heroku, и используя MongoDB, размещенную на Compose. При большой нагрузке латентность, скорее всего, будет поступать из базы данных, так как на уровне обслуживания нет ничего очень тяжелого процессора. Таким образом, когда MongoDB перегружен, я хочу быстро вернуть HTTP 503, а не ждать таймаута.
Я также использую REDIS, а REDIS имеет функцию, в которой вы можете проверить количество команд в очереди (redisClient.command_queue.length). С помощью этой функции я могу сразу узнать, поддерживается ли REDIS. Есть ли что-то подобное для MongoDB?
Наилучший вариант, который я нашел до сих пор, - это опрос сервера для статуса через this command, но (1) Я надеюсь на что-то клиентскую сторону, так как могут быть всплески в пределах интервала опроса, которые вызывают проблемы, и (2) Я на самом деле не уверен, в какой части ответа на статус я хочу действовать. Эта вторая часть приводит меня к следующему вопросу ...
Я не совсем понимаю, как клиент MondoDB работает с сервером. Является ли одно соединение общим для каждого экземпляра клиента (и в моем случае, за процесс)? Запросы и записи в очереди локально или на сервере? Или одно соединение открыто для каждого запроса/записи, пока пул соединений базы данных не исчерпан? Если это так, кажется, я хочу следить за открытыми соединениями. Предоставляет ли сервер MongoDB такую информацию в другое время, кроме того, когда вы опросили статус?
Спасибо!
Это только вид информации, которую я искал. Спасибо! –