Тип и протокол соединения AppFabric Cache - PullRequest
5 голосов
/ 20 мая 2011

Использует ли API-интерфейс кэша AppFabric (локальный, а не Azure) WCF в качестве механизма связи?Мы интегрировали AppFabric в очень объемное веб-приложение и видим множество узких мест в некоторых вызовах WCF.Профилировщик заставляет казаться такими, как будто они поступают из нашей библиотеки кеша, но все они являются системными вызовами очень низкого уровня, поэтому нам любопытно ..

- это кэш appfabric, доступ к которому осуществляется через наборпрямой набор соединений TCP сокетов?или это какие-то протоколы / проекты более высокого уровня, которые накладываются поверх него?Appfabric имеет много преимуществ по сравнению с другими провайдерами (например, memcached), но если в системе с большими объемами издержки протокола слишком велики, мы опасаемся, что это может вызвать проблемы.

спасибо!

Ответы [ 3 ]

3 голосов
/ 24 мая 2011

Да, он использует WCF под одеялами.В частности, он использует двоичное кодирование сообщений по транспортному протоколу tcp, все с настраиваемыми параметрами, которые, я уверен, были выбраны командой кэширования AppFabric после множества сценариев нагрузочного тестирования.По умолчанию также включена защита (транспорт и подпись / шифрование сообщений), что определенно увеличит нагрузку на процессор.Вы можете отключить их, если вы уверены, что ваша сеть безопасна.

Безопасность имеет тенденцию увеличивать накладные расходы, и, если вы предоставили безопасную среду для своего кластера кэша / клиентских приложений, вам следует попытаться покончить с этим. Ознакомьтесь с разделом «Настройки безопасности» на этой странице MSDN , чтобы узнать, как настроить клиент. Также ознакомьтесь с разделом «Настройки расположения хранилища конфигурации кластера» на этой странице MSDN , чтобы узнать, как настроить безопасность на хосте ( примечание: , вы можете легко установить их с помощью Set-CacheClusterSecurity команда PowerShell).

2 голосов
/ 22 мая 2011

Распределенный и локальный аспекты AppFabric используют WCF, да.Вы используете perfmon?WCF и AppFabric Cache предлагают счетчики perfmon, которые позволят вам точно определить это.А если вы используете локальный кеш, вы используете уведомления?Это, конечно, увеличит болтливость.

При доступе к кешу, вы делаете много блокировок?По-моему, это сильно снижает производительность AppFabric Cache.

Кроме того, безопасность Windows и защита Sign или EncryptAndSign также влекут за собой значительные штрафы.

0 голосов
/ 24 мая 2011

Полностью согласен с тем, что сказал Дрю.

Я хотел бы думать, что коммуникационная часть уже оптимизирована для производительности и не должна быть узким местом как таковым.

Возможно, вы также захотите взглянуть на это исследование, посвященное производительности кэширования в Windows Server AppFabric http://www.griddynamics.com/images/files/af_cache_benchmarking_1.4.pdf

...