EnterpriseLibrary Кэширование в балансировке нагрузки
Могу ли я использовать кэширование библиотеки Microsoft Enterprise на серверах с балансировкой нагрузки? В моем случае у меня есть веб-служба, расположенная на 2 серверах с балансировкой нагрузки, и я использую кэш базы данных "backingStores" с конфигурацией, как показано ниже
<cachingConfiguration defaultCacheManager="Cache Manager">
<cacheManagers>
<add name="Cache Manager" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="MyDataCacheStorage11"/>
</cacheManagers>
<backingStores>
<add name="MyDataCacheStorage11" type="Microsoft.Practices.EnterpriseLibrary.Caching.Database.DataBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" encryptionProviderName="" databaseInstanceName="EntLib1ConnectionString111" partitionName="CAPwiki Cache"/>
<add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="NullBackingStore"/>
</backingStores>
</cachingConfiguration>
и когда я устанавливаю кэш с ключом "_testorderstatus3" от server1 и пытаюсь получить его от server2, он возвращает нулевое значение!!!
также, когда я устанавливаю значение с тем же ключом от server1 и снова устанавливаю его с server2, и я проверяю базу данных, я обнаружил, что она установлена 2 раза, как показано ниже
есть идеи по этому поводу? Мне нужно установить и получить на обоих серверах.
Спасибо
1 ответ
Корпоративная библиотека не поддерживает готовое решение для распределенного многосерверного кэширования. Из главы 5 Руководства разработчика:
Изначально блок приложения для кэширования не предоставляет функций, необходимых для распределенного кэширования на нескольких серверах.
Исходя из того, что вы пытаетесь сделать, я бы взглянул на службы кэширования Windows Server AppFabric.
Windows Server AppFabric предоставляет распределенную платформу кеша приложений в памяти для разработки масштабируемых, доступных и высокопроизводительных приложений.