Обновление на моем блоге про Хайбрис. Это третья статья на тему кэширования частей страниц для стабилизации работы на большом траффике интернет-магазина.
Alexey Pasynkov, спасибо за идею! Немножко пришлось повозиться, чтобы это взлетело на Windows, но в итоге всё получилось.
Если кратко о принципе работы. Между пользователем и хайбрисом ставится реверсивный прокси NGINX. Все запросы идут к нему, а он их, если надо, переадресовывает Хайбрису. Кэширование заключается в том, что иногда он это не делает, потому страница вдруг грузится сильно быстрее.
При запросе, положим, главной страницы хайбрис в первый раз рендерит все компоненты, но вместо того, чтобы сразу доставлять результат в браузер клиента, кладет результирующий html в кэш на указанное число секунд (зависит от кэшируемой области, устанавливается мануально). Далее хайбрис возвращает страницу пользователю, но все эти области с компонентами, которые теперь в кэше, заменяет в выходном HTML на спецтеги, которые перехватываются NGINX-ом. Если бы эти теги долетели до браузера пользователя, браузер бы не знал, что с ними делать, но тут нас выручает штуковина посредине, через которую проходят эти теги. Увидев теги, NGINX делает запрос к тому же кэшу, в котором сохранялись эти фрагменты, и вставляет результат вместо тегов, и браузер покупателя видит все так, как было бы без всякого кэширования. Только в среднем значительно быстрее. Если в первый раз это будет работать чуточку дольше, чем без всякого кэширования, то во второй и последующие разы будет работать значительно быстрее, т.к. Хайбрис уже не будет формировать добрую половину страницы, а она будет вытаскиваться из кэша еще до хайбриса, NGINX-ом.
В общем, я почти всё и рассказал тут, но в статье есть некоторые подробности и картинка.
Erik Babadzhanov Renata Mussina Maxim Antonov Marina Zhigalova Alexey Lyubimov