Все очень вежливо отвечают на этот вопрос: «это зависит» ... «ты должен проверить» ... и т. Д.
Да, вопрос не очень подробно описывает топологию приложения и сети, но если вопрос даже задают, то, скорее всего, a) БД является «локальной» для приложения (в той же подсети, или тот же компьютер, или в памяти), и б) веб-службы нет. В конце концов, ОП использует фразы «внешняя служба» и «отображать на своем сайте». Фраза «синтаксический анализ один раз или столько раз, сколько вам нужно каждый день» также предполагает набор данных, который точно не меняется каждую секунду.
Классический миф о SOA заключается в том, что сеть всегда доступна; Если пойти еще дальше, я бы сказал, что это миф, что сеть всегда доступна с низкой задержкой. Если ваши собственные внутренние системы не являются дерьмом, отправка HTTP-запроса через Интернет всегда будет медленнее, чем запрос к локальной БД или кластеру БД. Причин этому может быть несколько: количество переходов на удаленный сервер, проблемы с перебоями или ухудшением, которые вы не можете контролировать на удаленном конце, а также время внутренней обработки приложением удаленной веб-службы для анализа вашего запроса. собственный бэкэнд персистентности (он же DB) и возврат результата.
Запустите ваше приложение. Сделайте некоторое время ожидания и время отклика для вашей БД. Теперь сделайте то же самое с удаленным веб-сервисом. Если ваша БД также не находится в Интернете, вы заметите огромную разницу.
Для компетентного технолога совсем нетрудно масштабировать БД или для вас полностью удалить БД из кэширования, используя memcached и другие парадигмы; задержка между серверами, расположенными рядом друг с другом в центре обработки данных, значительно меньше, чем между компьютерами через Интернет (и более безопасна для загрузки). Даже если для достижения этого масштаба требуется некоторая мысль, он находится под вашим контролем, в отличие от удаленного веб-сервиса, масштабирование и задержка которого абсолютно непрозрачны для вас. Я, например, не был бы слишком доволен идеей, что доступность и отзывчивость моего сайта полностью зависит от кого-то другого.
Наконец, что произойдет, если удаленный веб-сервис недоступен? Представьте себе мир, в котором каждый запрос на ваш сайт включает в себя запрос через Интернет на какой-либо другой сайт. Что произойдет, если этот другой сайт недоступен? Ваши пользователи смотрят вращающийся курсор смерти в течение нескольких часов? Им нравится Ошибка 500, пока ваш сайт скрывается от этой неожиданной внешней зависимости?
Если вы обнаружите, что принимаете архитектуру, основные функции которой зависят от удаленного интернет-вызова для каждого запроса, очень тщательно продумайте свое приложение, прежде чем принять решение, сможете ли вы справиться с последствиями.