太多的WCF通道

3
在我们的系统中,有多个“站点”通过WCF相互通信。每个站点通过NetTCP绑定暴露了 ~20 个接口。
当一个站点使用对等站点的接口时,它将为每个通道打开一个单独的TCP套接字。这意味着,如果我要经常使用所有接口,每个对等站点将保持 ~20 个TCP套接字处于开放状态。
目前,每个站点拥有的对等方数量相对较少(10-15),但这将在不久的将来增长到 ~100。我的担忧是,这将要求每个站点具有 ~2000 条传入套接字,这似乎过多。我无法找出具体问题,但感觉不对劲。例如,这大大超过了WCF的默认MaxConcurrentConnections(默认值为10)。
这是否是系统的良好设计?我应该考虑将所有这些接口 consolida 到单个接口上(从而是单个通道)吗?我能否在单个通道上同时发送消息(我认为不行)?也许我应该考虑一个消息队列系统?
欢迎任何评论或想法。

@Fabske 看起来它在.NET 4.5已经过时了 :( 请参见http://msdn.microsoft.com/en-us/library/system.servicemodel.netpeertcpbinding.aspx - telewin
1个回答

0

也许我理解错了,但我认为这对我没有帮助。我的担忧是一个客户端将不得不打开20个不同的套接字来消费所有服务。即使使用PortSharing,这种情况还会发生吗?客户端仍然必须为每个接口调用ChannelFactory.CreateChannel - telewin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接