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 предоставляет распределенную платформу кеша приложений в памяти для разработки масштабируемых, доступных и высокопроизводительных приложений.

Другие вопросы по тегам