우리 웹 역할 클러스터에 Azure의 In-Role 캐싱을 사용하고 있습니다.여러 DataCacheClient - 이상한 구성 동작
별도로 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
startPort, discoveryPort 및 dataCacheServerEndpoint는 모두 서버 속성 (즉, 클라이언트가 서버에 연결해야하는 곳)입니다. 두 개의 서로 다른 팩토리를 사용하여 두 개의 다른 클라이언트를 만들려고했는데 둘 다 다른 최대 버퍼 크기를 볼 수 있습니다. –