Одно приложение обрабатывает большой объём данных — например, json c 100 000 объектов. Ресурсов не хватает.
Приложение написано так, чтобы обрабатывать большой объём данных за раз. Разработчик:
Пакетная обработка. Изначально организуйте код так, чтобы он мог обрабатывать данные параллельно пакетами.
Запрос работает корректно, но медленно из-за большого объёма обрабатываемых данных. Другие процессы или пользователь долго ждут ответа или запрос возвращает timeout.
Приложение написано так, чтобы обрабатывать большой объем данных за раз (отсюда долгая обработка). В системе постоянно растёт количество данных, из-за чего их обработка занимает всё больше времени.
Асинхронная обработка. Возвращайте в ответ на запрос не результат, а статус «запрос принят». Сам запрос должен обрабатываться асинхронно.
В системе есть часть, отказ которой приводит к остановке всей системы.
Сильная связанность сервисов.
Выстраивайте взаимодействие сервисов по принципу асинхронного обмена сообщениями.
и не успевает быстро обработать всё, что должен. Очередь на вход растёт.
Сервис не имеет возможности горизонтально масштабироваться для увеличения своей пропускной способности.
Заложите возможность увеличения количества копий сервиса.
Приложения связаны напрямую. Когда приложение A релизится, в приложении B перестаёт работать часть функций.
Сильная связанность сервисов.
Используйте промежуточный слой и контракты.
Приложения перестают функционировать из-за того, что мешают друг другу получить доступ к общим ресурсам.
Блокировка ресурсов не регламентирована.
Устанавливайте предельное время блокирования ресурса и не расширяйте его принудительно во время разработки.
Смотреть все
Ваша заявка отправлена успешно
Отправить снова
Контакты