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

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

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

Поэтому мои вопросы

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

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

Ответы [ 3 ]

2 голосов
/ 26 января 2010

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

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

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

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

1 голос
/ 07 мая 2011

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

1 голос
/ 30 июня 2010

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

Шани

...