3

In our system there are multiple "sites" communicating with one another via WCF. Each site exposes ~20 interfaces over NetTCP binding.

When a site consumes the interfaces of the peer site, it will open a separate TCP socket for each channel. This means that if I want to regularly use all the interfaces, ~20 TCP sockets will remain open for each peer site.

The number of peers each site has is currently relatively small (10-15), but this will have to grow to ~100 in the near future. My concern is that this will require each site to have ~2000 incoming sockets which seems excessive. I can't put my finger on a specific problem, but it just feels wrong. For example, this greatly exceeds WCF's default MaxConcurrentConnections (default value is 10).

Is this a good design for the system? Should I be looking at consolidating all those interfaces into a single interface (and thus a single channel)? Will I be able to send messages concurrently on a single channel (I think not)? Perhaps I should consider a message queue system?

Any comments or ideas would be welcome.

4

1 回答 1

0

您是否尝试过启用端口共享?即http://msdn.microsoft.com/en-us/library/ms734772.aspx

于 2012-10-16T14:49:06.920 回答