В настоящее время у нас есть сайт, размещенный на одном сервере, и мы изучаем добавление нового сервера. Основная проблема - кэширование. Некоторые элементы кэшируются в зависимости от того, когда они изменены. Однако сейчас они меняются в одном процессе, поэтому кеш может быть аннулирован.Обработка устаревших кешей с несколькими серверами
Если сайт размещен на двух серверах, изменения могут быть выполнены на обоих серверах, и они не будут уведомлены об этих изменениях. Кэш должен оставаться, так как он значительно ускоряет работу веб-сайта. Я бы предпочел, если кэш-сервер не будет выведен из кэша вне процесса, поскольку он замедляется до скорости сети, а не памяти, и добавляет сложности серверам.
Веб-сайт реализован в .Net, с MySQL, поскольку он поддерживает хранилище данных. Моя проблема заключается в том, как процесс может быть уведомлен при изменении данных. Возможно ли, что MySQL будет автоматически уведомлять всех зарегистрированных клиентов о любых изменениях данных? Я использовал RavenDb, у которого есть аналогичная функция, которая очень удобна. Я не мог найти ничего похожего на MySQL. Если это невозможно, любые идеи о том, как можно подойти к этой проблеме?
Да, я использую основной кеш в памяти. Проблема в том, что это старая база кода, а некоторые объекты в кеше нелегко сериализуемы. Следовательно, in-memory работает отлично, но из-за процесса требуется, чтобы они были сериализуемыми. Couchbase - это база данных NoSQL, а не сервер кеша? Думаю, на данный момент мне придется бороться с возможной последовательностью. Если сервер базы данных поддерживает уведомления об изменениях, это будет кусок пирога для реализации. К сожалению, MySQL не кажется. –
@ KarlCassar Couchbase - это своего рода промежуточный. Он использует memcached под капотом, но обеспечивает поддержку диска и атомарность на ключевом уровне, поэтому это своего рода небольшая база данных в памяти. Мы, как правило, используем кеширующую сторону больше, чем сторона поддержки диска. –