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

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

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

Итак, мои вопросы

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

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


person Ender    schedule 12.01.2010    source источник


Ответы (3)


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

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

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

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

person sanjay    schedule 26.01.2010

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

Шани

person shanyp    schedule 30.06.2010

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

person andrewbadera    schedule 07.05.2011
comment
У вас есть ссылка на точную страницу в документации, которая ссылается на это? - person Robs; 20.01.2012