2012-02-07 5 views
3

그래서 이것은 꽤로드 된 질문이라는 것을 알고 있습니다. 그러나 여기에 제가 계량하려고하는 것이 있습니다.개방형 nettcpbinding 연결에 대한 제한

WCF를 통해 안정적인 세션 tcp 연결을 허용하고 클라이언트에 콜 백 채널을 여는 서버가 있습니다. 99.999 %의 시간은 서버가 콜백을 발행하기를 기다리고 있습니다 (연결을 유지하면서 아무것도 처리하지 않는 것).

어떤 컴퓨터 병목 현상이 발생합니까? WCF <servicethrottling /> 바인딩에 대한 속성을 이미 처리했지만로드/최대 연결/"누락 된 다른 것"의 관점에서 Azure Small Instance 당 클라이언트 수를 제공하려고합니다. 전반적으로이 사람들은 기다리는 것만으로도 멍청하게 앉아있을 것입니다. 당신은 아웃 바운드 연결을 여는 경우

+0

+1 좋은 질문 - 반드시 좋은 디자인은 아니지만 좋은 질문입니다. 정품이 아닌 규범 적 디자인 관련 답변이 흥미 롭습니다. –

+0

그래, 저기 다른 디자인을 고려해 보겠다. 낮은 대기 시간 응답은 설계 요구 사항이기 때문에 일부 메커니즘을 배제 할 것으로 기대한다. –

답변

1

, 당신은 당신의 역할 ONSTART() 코드에서

ServicePointManager.DefaultConnectionLimit

을 증가 고려해야 할 것이다. 나는 기본을 회수 할 수 없습니다,하지만 난 당신이 그것에있는 동안 당신이 짧은 메시지를 많이 밀어 경우뿐만 아니라 false

ServicePointManager.UseNagleAlgorithm

를 설정하는 것이 좋습니다 (12)

의 생각 (아래, 오, 1400 바이트). 그렇지 않은 경우 메시지는 최대 0.5 초 동안 버퍼링됩니다. Nagle에 대한 자세한 내용은 this SO answer에 있습니다.

+0

좋은 조언! 나는'DefaultConnectionLimit'을 다루었지만, Nagle 알고리즘은 고려하지 않았습니다. 다양한 크기의 전화를 걸게되면, 1400 미만의 전화가 걸려도 Nagle을 사용하면 더 큰 전화를받을 때 많은 효율성을 잃게됩니까? –

+0

큰 패킷의 경우 Nagle의 영향을받지 않습니다. –

+0

멋지다. 알고 싶다. 의견을 보내 주셔서 감사합니다! –