У меня есть следующий вариант использования: веб-приложение (на самом деле браузер клиента) периодически отправляет трекинг / пинг на веб-сервер (через XHR, JSON). Я храню эти треки в коллекции MongoDB с индексом четырех свойств. Очевидно, что эта коллекция будет расти очень быстро.
Я имею в виду три варианта:
Просто обработайте сообщение JSON и вставьте в MongoDB.
Получить
JSON-сообщение и порождение фоновой задачи для вставки в MongoDB
- Обработать сообщение JSON и поместить сообщение в очередь (RabbitMQ ?!)
и затем позволить потребителю очереди вставить в MongoDB.
Какой из них лучше всего подойдет в случае большого использования в Интернете? Я думаю, что 2-3) будет иметь серьезные накладные расходы и, следовательно, будет медленнее в режиме разработки, но я не могу предсказать, если 2-3) действительно будет масштабироваться лучше. Поскольку будет много строк и имеется огромный индекс, я бы сказал, что вставка в коллекцию MOngoDB будет довольно медленной, если будет достигнут определенный предел.
Справочная информация: не важно, чтобы обработка каждого сообщения / отслеживания была гарантирована, и если сервер выходит из строя, он в порядке, если данные потеряны.