우리 시스템에는 WCF를 통해 서로 통신하는 여러 "사이트"가 있습니다. 각 사이트는 NetTCP 바인딩을 통해 ~ 20 개의 인터페이스를 제공합니다.WCF 채널이 너무 많습니다.
사이트가 피어 사이트의 인터페이스를 사용하면 각 채널에 대해 별도의 TCP 소켓이 열립니다. 즉, 모든 인터페이스를 정기적으로 사용하려면 ~ 20 개의 TCP 소켓이 각 피어 사이트에 대해 열린 상태로 유지됩니다.
각 사이트에있는 피어의 수는 현재 비교적 적지 만 (10-15) 가까운 미래에 ~ 100까지 증가해야합니다. 내 관심사는 각 사이트에 과도하게 보이는 ~ 2000 수신 소켓이 있어야한다는 것입니다. 나는 특정한 문제에 관해서는 손가락을 집어 넣을 수는 없지만, 잘못 생각한다. 예를 들어, 이것은 WCF의 기본 MaxConcurrentConnections (기본값은 10)를 크게 초과합니다.
시스템에 적합한 설계입니까? 모든 인터페이스를 단일 인터페이스 (및 단일 채널)로 통합해야합니까? 단일 채널에서 동시에 메시지를 보낼 수 있습니까? 아마도 메시지 큐 시스템을 고려해야할까요?
모든 의견이나 아이디어를 환영합니다.
@Fabske .NET 4.5에서 더 이상 사용되지 않는 것으로 보입니다. (http://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding.aspx – telewin