Храните миллионы данных в mongo db, используя Springboot с эффективными вызовами API api - PullRequest
0 голосов
/ 22 сентября 2018

Я работаю над Spring-Boot с остальными вызовами API и базой данных Mongo.У нас есть несколько аппаратных устройств в качестве клиента, а я сервер.несколько клиентов отправляют мне миллионы байтовых данных в течение миллисекунд через порт, а размер IP-адреса (т. е.) составляет 4 КБ.

Я получаю эти байтовые данные через сервер TCP / UDP через номер порта.После этого я отправляю эти данные на мой оставшийся вызов с концепцией блокировки очереди и сохранением данных пакетной вставки в базе данных.

Проблема:

, когда клиент отправляет мне 10 миллионов данных через порт и IPадрес (концепция UDP), но моя сторона получает только от 5 до 6 миллионов данных, а 4 миллиона данных отсутствуют.

Я заметил, что на преобразование данных (т. Е. Байтовые данные в int, float, boolean) уходит некоторое время, и в это время возможно сохранение данных в БД, если данные клиента отсутствуют

1 Ответ

0 голосов
/ 22 сентября 2018

Это слишком широкий вопрос и широкий охват, но только для того, чтобы дать вам представление о том, как вы можете решить свою проблему

  1. Если возможно, перейдите к весеннему webflux с реактивным mongodb, это улучшит вашу производительностьиз-за неблокирования io

  2. Вам необходимо использовать балансировщик нагрузки для своих микроуслуг, которые вы создали для потребления записей

  3. Проверьте конфигурацию подачи и посмотритекакую нагрузку он может выбрать, но, конечно, webflux поможет вам при вертикальном масштабировании использовать ресурсы, но если нагрузка слишком высокая, используйте балансировщик нагрузки и разверните свое приложение на нескольких машинах

  4. Миллионы записейхорошо в mongodb, но вы обнаружите снижение производительности при использовании mongodb в кластере.

Это может помочь вам достичь того, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...