Использование resttemplate для внешних вызовов API - производительность - PullRequest
1 голос
/ 06 мая 2019

Я являюсь jr.dev и работал с Spring Boot в различных проектах, главным образом для создания сервера / клиента, где клиент отправляет некоторые данные на сервер, затем сервер вызывает внешние API для отражения изменений на стороне клиента.

В будущем я буду участвовать в создании серверной части для административного портала.На этом портале может быть до ~ 100 пользователей, вносящих изменения одновременно.В вышеупомянутых системах сервер / клиент обновления были нечастыми, поэтому производительность не определялась по приоритетам, однако, если на этом административном портале одновременно находятся 100 пользователей, пользовательский интерфейс может быть плохим.

Структура того, что я создаю:

Клиент (браузер) CRUD -> мой бэкэнд -> 1-3 внешних вызова API для локально размещенных сервисов.

И здесь мне не хватает Spring Resttemplate.Если 10 пользователей делают запрос примерно в одно и то же время, RESTcontroller попытается выполнить соответствующий код для 10 запросов одновременно, НО, поскольку код использует Resttemplate для выполнения вызовов внешнего API, каждый поток RESTcontroller будет иметьждать своей очереди, потому что Resttemplate является синхронным?- В свою очередь, при выполнении последнего запроса RESTcontroller необходимо ожидать, возможно, 10-30 вызовов Resttemplate во внешний API, которые занимают примерно 30 мс каждый.

Есть ли лучший способ справиться с этим?Чтобы каждый запрос к restcontroller мог связываться с внешним API, не дожидаясь, пока другой поток освободит Resttemplate?

Я мог бы говорить бессмысленно, я нахожу, что очень сложно задавать конкретные вопросы Google о Spring / RESTcontroller /Структура Resttemplate, являются ли они асинхронными / синхронными и т.д ..

...