我正在爲我們的Web角色羣集使用Azure的角色內緩存。多個DataCacheClients - 奇怪的配置行爲
我需要使用單獨的dataCacheClients
以便具有不同且明確設置的傳輸屬性配置(maxBufferPoolSize
和maxBufferSize
)。
問題是每個dataCacheClient
始終設置爲相同的maxBufferPoolSize
和maxBufferSize
值。它們都被設置爲我首先實例化的dataCacheFactory
的值。 (載靜態「經理」內部)
<dataCacheClients>
<dataCacheClient name="DataCache1">
<autoDiscover isEnabled="true" identifier="MyRoleName" />
<transportProperties maxBufferPoolSize="6400000" maxBufferSize="256" />
</dataCacheClient>
<dataCacheClient name="DataCache2">
<autoDiscover isEnabled="true" identifier="MyRoleName" />
<transportProperties maxBufferPoolSize="0" maxBufferSize="10485760" />
</dataCacheClient>
<dataCacheClient name="DataCache3">
<autoDiscover isEnabled="true" identifier="MyRoleName" />
<transportProperties maxBufferPoolSize="3276800" maxBufferSize="32768" />
</dataCacheClient>
</dataCacheClients>
每個混凝土DataCache
對象是從單獨的DataCacheFactory
實例實例化。我也嘗試恢復以編程方式創建緩存客戶端,但無濟於事。
所以,這裏是一個例外,在256
被拋出由於MAXBUFFERSIZE太小調試時工廠,你可以清楚地看到,MAXBUFFERSIZE不是256:
我開始拉我的頭髮了,所以我想出了兩個想法:
我的猜測是,每個數據客戶端的AutoDiscoveryProperties
中的StartPort
和DiscoveryPort
都是相同的(22233與StartPort
和24233與DiscoveryPort
相同),這使我相信他們可能從同一工廠拉出(並因此使用相同的工具設置)。
另外,每個客戶端的DataCacheServerEndpoint
也是相同的,在20004.也許他們需要有所不同?
我正在使用Microsoft.WindowsAzure.Caching 2.4.0.0和Azure SDK 2.4。
任何人都可以幫助我指出正確的方向嗎?
我已經這樣做了。同樣的問題。 – davenewza 2014-10-18 05:01:24
startPort,discoveryPort和dataCacheServerEndpoint都是服務器屬性(即客戶端需要連接到服務器的位置)。我嘗試使用兩個不同的工廠創建兩個不同的客戶端,我可以看到兩者的最大緩衝區大小不同。 – 2015-04-10 21:38:47