Один звонок лучше.
На самом деле есть несколько факторов, которые включают это. главное в этом: в любой заданной системе эффективность системы является самой медленной составляющей. В большинстве случаев с многоуровневой архитектурой, если вы не делаете что-то невероятно сложное в своих расчетах, самая медленная часть - это передача информации между уровнями. Таким образом, с несколькими передачами по уровням говорят, что у вас есть процесс a, который занимает 10 мс для завершения и обработки b, который занимает 25 мс для завершения, но ваша передача занимает 100 мс, чтобы идти в обоих направлениях, если вы выполняете однопоточный вызов, вы будете ожидая 135 мс для вызова, который выполняет оба варианта, против 235 для нескольких вызовов.
Но подождите, если вы спросите, что произойдет, если оба вызова находятся в разных потоках. Хорошо, теперь это вопрос системных ресурсов, уверен, что ваши постоянные потоки сделают это быстрее до точки. Вы по-прежнему говорите в лучшем случае об уменьшении скорости 10 мс в описанном выше сценарии, почти тривиально, когда речь идет о большой полной шкале передачи. Но то, что происходит, когда ваши вызовы превышают число постоянных потоков, поскольку вызовы api являются апатридами, каждый вызов обрабатывается в его собственном потоке. Итак, теперь вы должны заплатить штраф, чтобы развернуть поток, что очень сложная операция.
Существует сценарий, что вы можете выполнять несколько вызовов api для одной и той же операции, но я бы рекомендовал использовать их только для вещей, не зависящих друг от друга, например, процесс отладки завершен и возвращается полностью независимым от процесса b
Я подозреваю, что это мало чем отличается, поскольку я думаю, что контроллер создан для каждого запроса, но могут возникнуть некоторые проблемы с кешированием. Я хотел бы получить хороший ответ –
Когда вы говорите, что 10 контроллеров обрабатывают по одному запросу каждый, вы говорите о структуре (т. Е. 10 методах запроса на одном контроллере) или активации (т. Е. Singleton vs. per request resources)? –
Если бы я сказал, что один контроллер, который позволил мне получить 10 разных сущностей (я знаю, плохой дизайн, как пример), я делаю один запрос для каждого vs, помещая каждый запрос на получение в другой контроллер, по одному для каждого объекта. – Dhunt