2009-10-08 2 views
1

В настоящее время я участвую в проекте, в котором мы разрабатываем большой веб-сайт, который в значительной степени опирается на внешнюю службу (для некоторых функций), разработанную другой компанией. Внешняя услуга время от времени ломается и не предоставляет нам данные, которые нам нужны. Это серьезная проблема для нас, так как требования к «нашему» веб-сайту очень высоки.Зависимости от внешних (сетевых) услуг

Как мы должны справиться с этим? Мы не хотим кэшировать данные с внешнего сайта для использования в качестве «резервной копии», так как тогда мы можем отображать устаревшие или неправильные данные. Мы также считаем, что мы не должны пытаться «исправлять» проблемы во внешней системе, сохраняя локальные копии внешних данных, поскольку это может привести к проблеме синхронизации, когда локальные данные устарели или ошибочны.

Есть ли у кого-нибудь подобные переживания? Любые идеи, как мы это решаем (или, по крайней мере, смягчаем проблему)?

+0

Жизненно важно, чтобы мы отображали только не слишком старые данные (где «слишком старый» определяется владельцем продукта). Мы, вероятно, применим механизм кэширования в соответствии с приведенными ниже предложениями, чтобы попытаться смягчить проблему. Мне кажется, что лучшим решением будет исправить системы, от которых мы зависим, но это решение не соответствует моей команде. Мы сделаем все возможное, чтобы предоставить данные, которые несколько недавно появились. Спасибо! – Karl

ответ

1

Кэширование было бы моим первым выбором.

Это зависит от места вашей развивающей, но вы не могли бы кэшировать все результаты и информировать пользователей о том, что это то, что вы сделали - например, «это был точен на 2009-10-08 - нажмите здесь, чтобы обновить»

ОБНОВЛЕНИЕ: Не зная больше о том, какие данные вы получаете от веб-сервиса, и о том, что аудитории вашего сайта сложно понять, что предложить, поскольку решение будет зависеть от этих факторов. Вы должны думать о своих клиентах, чтобы решить, сможете ли вы показать им потенциально устаревшие данные или нет.

Если запросы к веб-сервису имеют тенденцию быть похожими, то одна вещь, которую следует учитывать, - это возможность того, что кеширование также поможет вам с производительностью и масштабированием, а также поможет в повышении устойчивости.

1

Вы можете использовать кеширование как резервный механизм, когда внешний ресурс недоступен. Таким образом, вы используете живые данные до тех пор, пока услуга доступна, и когда она опускается, когда вы копаетесь в кеш. Было бы важно как-то пометить данные таким образом, чтобы потребитель этих данных знал, насколько он свеж.

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

Смежные вопросы