Области кэширования в Velocity/AppFabric с использованием WCF

У меня есть сервисная архитектура, где веб-ферма, полная клиентов asp, попадает на ферму серверов приложений служб WCF. Очевидно, что весь доступ к базе данных осуществляется службами WCF. Теперь я хотел бы кэшировать мои часто используемые объекты из базы данных, используя Velocity на уровне сервисного уровня. Я рассматриваю возможность сделать каждый физический сервер приложений частью кластера кеша.

Согласно документации Velocity, если я использую регионы, объекты хранятся только на одном хосте. У меня фактически не было бы никаких проблем, если бы каждый хост держал свой собственный кеш при условии, что я мог как-то их синхронизировать.

Так что мои вопросы

  1. Если я создаю один регион на одном хосте, он также создается на другом?
  2. Когда я очищаю область кэша, она очищается только на одном хосте?
  3. Если я подпишусь на уведомление уровня региона на всех хостах, могу ли я перехватывать события одного хоста на другом?
  4. В этом случае я должен использовать регионы вообще или держаться подальше от них?

Я надеюсь, что мои вопросы понятны. На самом деле меня больше интересует решение моей проблемы, чем ответы на мои вопросы.

3 ответа

Решение

Да, вы правы, читая документ, что регион будет существовать только на одном хосте.

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

Когда вы говорите, синхронизировать, вы имеете в виду, когда HA включен? Скорость действительно позаботится об этом, если это то, что вы имели в виду.

По вопросам: 1. Нет. 2. Да 3. Уведомления будут отправлены клиенту. Поэтому я не уверен, есть ли возможность отправлять уведомления на другой хост. 4. Регионы дает возможности поиска и отнимает у вас HA. В вашем случае вы можете использовать преимущества HA.

Наличие регионов не обязательно означает, что у вас нет ГА. если вы создаете свой собственный кеш (и не используете "по умолчанию"), вы можете создать его с Secondarys = 1 (HA включен), теперь предположим, что у вас есть 4 кеш-хоста; когда вы определяете регион, он будет иметь как основной, так и дополнительный хосты. поэтому каждое действие в регионе приведет к тому, что оно будет применено в обоих случаях.

Шани

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

Другие вопросы по тегам