【发布时间】:2012-10-16 22:49:06
【问题描述】:
在我们的系统中,有多个“站点”通过 WCF 相互通信。每个站点通过 NetTCP 绑定公开约 20 个接口。
当一个站点使用对等站点的接口时,它将为每个通道打开一个单独的 TCP 套接字。这意味着如果我想定期使用所有接口,大约 20 个 TCP 套接字将为每个对等站点保持打开状态。
目前每个站点的对等点数量相对较少(10-15 个),但在不久的将来必须增加到约 100 个。我担心的是,这将要求每个站点有大约 2000 个传入套接字,这似乎过多。我不能把手指放在一个特定的问题上,但它只是感觉不对。例如,这大大超过了 WCF 的默认 MaxConcurrentConnections(默认值为 10)。
这对系统来说是一个好的设计吗?我是否应该考虑将所有这些界面整合到一个界面(因此也就是一个通道)中?我能否在单个频道上同时发送消息(我认为不能)?或许我应该考虑一个消息队列系统?
欢迎任何 cmets 或想法。
【问题讨论】:
-
@Fabske 从 .NET 4.5 开始,它似乎已过时 :( 请参阅 msdn.microsoft.com/en-us/library/…