Asp.net AppFabric缓存连接类型和协议

Asp.net AppFabric缓存连接类型和协议,asp.net,memcached,appfabric,Asp.net,Memcached,Appfabric,AppFabric缓存API(本地,而非Azure)是否使用WCF作为其通信机制?我们将AppFabric集成到一个非常大容量的web应用程序中,在一些WCF调用中发现了大量瓶颈。探查器使它看起来像是来自我们的缓存库,但它们都是非常低级的系统调用,所以我们很好奇 appfabric缓存是否通过一组直接的TCP套接字连接访问?或者它们是一些更高层次的协议/设计,它们是分层的吗?Appfabric比其他提供商(如memcached)有很多好处,但如果在大容量系统上存在如此大的协议开销,我们担心这可能

AppFabric缓存API(本地,而非Azure)是否使用WCF作为其通信机制?我们将AppFabric集成到一个非常大容量的web应用程序中,在一些WCF调用中发现了大量瓶颈。探查器使它看起来像是来自我们的缓存库,但它们都是非常低级的系统调用,所以我们很好奇

appfabric缓存是否通过一组直接的TCP套接字连接访问?或者它们是一些更高层次的协议/设计,它们是分层的吗?Appfabric比其他提供商(如memcached)有很多好处,但如果在大容量系统上存在如此大的协议开销,我们担心这可能会导致问题


谢谢

AppFabric的分布式缓存和本地缓存特性使用WCF,是的。您正在使用perfmon吗?WCF和AppFabric缓存都提供了perfmon计数器,可以让您精确地确定这一点。如果使用本地缓存,是否使用通知?这当然会增加聊天的次数

在访问缓存时,是否进行了大量锁定?根据我的经验,这似乎会大大降低AppFabric缓存的性能


此外,Windows安全和签名或加密签名保护也会招致相当大的惩罚。

完全同意Drew的说法

我认为通信部分已经针对性能进行了优化,因此不应该成为瓶颈


您可能还想看一下Windows Server AppFabric缓存性能的案例研究

是的,它在封面下使用了WCF。更具体地说,它在tcp传输上使用二进制消息编码,所有这些都带有自定义配置的设置,我确信这些设置是AppFabric缓存团队在大量负载测试场景之后选择的。它还默认启用了安全性(传输和消息签名/加密),这肯定会增加一些CPU开销。如果您确信网络设计是安全的,则可以禁用这些


安全性往往会增加很多开销,如果您已经为缓存集群/客户端应用程序提供了一个安全的环境,那么您应该尝试消除它。有关如何配置客户端的更多详细信息。有关如何在主机上配置安全性的详细信息(注意:您可以使用
set CacheClusterSecurity
PowerShell命令轻松设置这些安全性)。

没错,我们也会这么想。然而,在我们的测试中(我们可能看错了),我们看到将对象序列化为XML的Appfabric花费了非常长的时间。Drew说不,它使用二进制序列化,但我还没有找到任何支持它的文档。关闭安全设置肯定会有帮助,谢谢!这与其说是一个回答,不如说是一个评论。