2013-04-09 1 views
1

В документации клиента AppFabric 1.1 обсуждается назначение списка конечных точек DataCachServer для DataCacheFactoryConfiguration. Большинство примеров показывают список, состоящий из одного или, возможно, двух разных серверов кеша. Если кластер состоит из n серверам, должен ли клиент регистрировать каждый из серверов? Неважно, в каком порядке зарегистрированы серверы? Например, если у меня есть 50 серверов в моем веб-уровне и 5 серверов в моем уровне кэша, каждый из 50 веб-серверов регистрирует все 5 кеширующих серверов? Вот пример кода:AppFabric 1.1 Сколько клиентов DataCacheServerEndpoint должен подключиться к клиенту?

// Declare array for cache host(s). 
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[5]; 
servers[0] = new DataCacheServerEndpoint("Cache01", 22233); 
servers[1] = new DataCacheServerEndpoint("Cache02", 22233); 
servers[2] = new DataCacheServerEndpoint("Cache03", 22233); 
servers[3] = new DataCacheServerEndpoint("Cache04", 22233); 
servers[4] = new DataCacheServerEndpoint("Cache05", 22233); 

// Setup the DataCacheFactory configuration. 
DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration(); 
factoryConfig.Servers = servers; 

// Create a configured DataCacheFactory object. 
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig); 

// Get a cache client for the cache named "default". 
DataCache myDefaultCache = mycacheFactory.GetCache("default"); 

Может каждый регистр веб-сервер одинаково, и нагрузка будет сбалансирован по кеширования ярусе? Если зарегистрированный сервер становится недоступным, следующий следующий в последовательности, или он рандомизирован? Полезны ссылки на вспомогательную документацию.

Относительно балансировки нагрузки Jason Roth написал следующее [имеется ли другая документация]?

Клиент ткани приложения - это умный клиент, и он может напрямую обращаться к серверу, на котором когда-либо был сервер. Приложению не нужно беспокоиться о балансировке нагрузки. Это делается с использованием клиента маршрутизации.

ответ

1

Основываясь на некоторых испытаний, и давая комментарий мойку Джейсона Рота, я думаю DataCacheServerEndPoint используется в «смарт-клиент», чтобы получить список членов кластера кэша, когда метод GetCache вызывается на DataCacheFactory , Объект DataCache - это то, что является умным, и оно разумно в том смысле, что если сервер, используемый в экземпляре DataCacheServerEndpoint, отключается или становится недоступным, смарт-клиент все еще имеет доступ к другим членам кластера. Поэтому целью списка более чем одной DataCacheServerEndpoint является предоставление избыточности при вызове метода GetCache.

Совет состоит в том, что объект DataCache должен следовать шаблону singleton и не создавать экземпляры каждого запроса данных из кеша. Вот почему нет необходимости перегружать или предоставлять VIP для отдельных DataCacheServerEndpoints.

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

Когда дело доходит до администрирования ящиков в кластере кеша (например, применяя ежемесячные исправления), рассмотрите возможность минимизации переполнения кэша и перебалансировки путем администрирования одного окна за раз, вместо того, чтобы пытаться администрировать группы ящиков в «волнах» ».