EnterpriseLibrary Кэширование в балансировке нагрузки - PullRequest
2 голосов
/ 18 октября 2011

Можно ли использовать кэширование библиотеки Microsoft Enterprise на серверах балансировки нагрузки ?, В моем случае у меня есть веб-сервис, расположенный на 2 серверах балансировки нагрузки, и я использую Database backache «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, он возвращает нулевое значение !!!

также, когда я устанавливаю значение с тем же ключом с сервера1 и снова устанавливаю его с сервера2, и проверяю БД, я обнаружил, что оно установлено 2 раза, как показано ниже enter image description here

есть идеи по этому поводу? Мне нужно установить и получить на обоих серверах.

Спасибо

1 Ответ

3 голосов
/ 18 октября 2011

Корпоративная библиотека не поддерживает готовое решение для распределенного многосерверного кэширования.Из Глава 5 Руководства разработчика :

В стандартной комплектации блок кэширования приложений не предоставляет функций, необходимых для распределенного кэширования между несколькими серверами.

Исходя из того, что вы пытаетесь сделать, я бы посмотрел на Службы кэширования Windows Server AppFabric .

Windows Server AppFabric предоставляет распределенный кэш приложений в памятиплатформа для разработки масштабируемых, доступных и высокопроизводительных приложений.

...