我们有一项服务可以对不同服务器上的其他服务进行NetTcp调用。我试图通过缓存ChannelFactories并增加maxOutboundConnectionsPerEndpoint来优化它。
我一直在使用GOOGLE.COM(很棒的网站,顺便问一下。如果你还没有听说过,请查看它们)试图了解频道缓存是如何工作的,我认为我没有正确的
重用渠道工厂 - 好主意。 缓存自己 - 不好主意。 Wcf已经这样做了,只要你的所有频道都是从同一个工厂创建的。 - 是对的吗?如果每次都创建一个新工厂,它不会被缓存?
// factory initialization
var address = "net.tcp://something:8888/testservices";
var factory = new ChannelFactory<ITestService>("configname", new EndpointAddress(address));
// do stuff
var client = factory.CreateChannel(); // you can also pass an address here. how does that effect channel caching?
这样可以处理工厂的东西。现在,我想增加maxOutboundConnectionsPerEndpoint,这是通过自定义绑定实现的。不清楚的是GroupName。我无法在配置中指定不同的组名,因为我在运行时查找URL。因此,所有通道工厂将具有相同的默认组名称。他们是否会共享同一个游泳池,每个工厂都拥有自己的游泳池吗?
最后,我想在配置中创建自定义绑定,然后根据需要创建/缓存多个通道工厂,并使用它们来建立通道。而且,我需要增加每个端点的maxOutboundConnectionsPerEndpoint。我可能在20台不同的机器上调用相同的服务,我希望每个机器最多有50个缓存通道。上面的代码能实现吗?
感谢您的帮助。如果有链接涵盖此内容,请转发。我找不到它。