2015-11-12 3 views
0

У меня есть ситуация, когда у меня есть запрос на отправку с другого сервера, запрашивающий информацию о клиенте, включая UID и другую информацию, такую ​​как идентификатор клиента. После ответа с информацией о клиенте я получаю второй запрос с тем же идентификатором UID запросить платеж одному и тому же клиенту. Я хочу кэшировать этот UID и другую информацию из первого запроса, чтобы иметь возможность идентифицировать, какой второй запрос принадлежит какому клиенту.кэширование запроса на отдых

Может ли кто-нибудь помочь мне использовать майку для реализации этой ситуации?

+0

Попробуйте сами попытаться решить проблему, а затем разместите ее на свой вопрос с любыми конкретными вопросами, которые у вас есть. Мы не предоставляем полные решения или куски кода. – EkcenierK

+0

Вы не должны делать это в REST. Запрос должен иметь всю информацию, необходимую для правильной обработки. –

+0

Я знаю, но мне нужно рассчитать минимальный платеж для этого клиента в первом запросе и отправить его обратно, прежде чем обрабатывать второй запрос с оплатой, и будет накладные расходы, чтобы отправить одну и ту же информацию дважды через сеть. Кроме того, t хотите сохранить информацию с первого запроса, если второй запрос не был выполнен. – yehia

ответ

0

Как указано Педро, каждый запрос должен содержать все данные, необходимые для обработки запроса.

Если оба запроса содержат UID, а идентификатор UID можно использовать ключом, то кэширование информации о клиентах на основе UID (для оценки эффективности может быть?) Приемлемо. Но это чистая проблема с кешем, а не проблема Джерси.

Если на примере информация о клиенте извлекается с использованием JPA, кэш второго уровня может кэшировать это.

Если информация получена другими способами, рассмотрите использование кэша Guava. https://github.com/google/guava/wiki/CachesExplained

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

кэш гуавы содержит все виды лакомства: размер основанного выселения, время на основе выселения и т.д.

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

+0

Спасибо @filipd, я использую Spring Data JPA, и я не хочу ударять DB много раз и в то же время не хочу сохранять информацию с первого запроса, если не получить и не удастся ответить на второй запрос. Поэтому я хочу временно сохранить информацию, получая ее с первого запроса рядом с информацией о клиенте из БД. – yehia

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