2010-01-12 3 views
3

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

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

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

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

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

ответ

2

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

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

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

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

1

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

Shany

1

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

+0

У вас есть ссылка на точную страницу в документации, которая ссылается на это? – Robs

+1

http://msdn.microsoft.com/en-us/library/ee790985.aspx – Robs