只要一次有一个请求,使用我的同位缓存的所有内容都可以正常工作。但是当我用几个并发请求访问我的服务时,我的缓存似乎不起作用。
初步分析让我明白了这一点 - https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-service/
显然,我将不得不使用maxConnectionsToServer
允许多个并发连接进行缓存。但是该文档还讨论了一个useLegacyProtocol
必须设置为 false 才能启用连接池的参数。
我有以下问题:
我的服务会收到几百个并发请求。对于这种情况,这是否是一个很好的设置:
<dataCacheClient name="default" maxConnectionsToServer="100" useLegacyProtocol="false">
这是我对使用此配置会得到的行为的理解 - 每次收到请求时,都会尝试从池中检索连接。如果没有可用的连接,如果当前连接数少于 100,则创建一个新连接,否则请求将失败。请确认这是否正确。
上面的文档说每个 DataCacheFactory 实例将使用一个连接。我有一个缓存管理器类,它管理与缓存的所有交互。这是一个单例类。它创建一个 DataCacheFactory 对象并在其实例化期间使用它来获取缓存的句柄。我的服务将有 2 个实例。看起来我只需要 2 个与服务器的连接。这个对吗?我什至需要连接池吗?
maxConnectionsToServer 可以接受的最大值是多少,给定场景的理想值是多少?
我还看到一个名为“ConnectionPool”的布尔参数。这看起来是对“useLegacyProtocol”的补充。这不是多余的吗?设置 useLegacyProtocol="false" 与 connectionPool="true" 有何不同?我对是否以及如何使用此参数感到困惑。
maxConnectionsToServer
和参数是否ConnectionPool
以任何方式相关?当我将 maxConnectionsToServer 设置为 5 且 ConnectionPool=true 时,这意味着什么?