背景:我们开发一个 Windows 服务,使用 TCP 下的专有协议处理与设备的通信。
问题:如果此 Windows 服务监听不同的端口(例如 3001、3002、3003),并且有一个端口(例如 3000)在这些实例之间转发流量(或负载平衡),我该如何设置多个实例?
我们使用 Windows Server 2008 R2。我找到了使用 NLB 对多台服务器进行负载平衡的解决方案,但无法为单台服务器和多个端口进行相同的配置。
原因是什么?透明部署使用单个服务器,在与所有客户端一起使用之前评估版本的稳定性,并且服务在 3 个实例(每个实例 1k 个客户端)中的表现似乎比 1 个实例(每个实例 3k 个客户端)中的表现更好。
答案1
您是否考虑过使用 3 个不同的 IP 地址指向同一服务器上的 3 个服务实例?这样可以为您提供 3 个 IP 堆栈,并可能提供您需要的性能。您还可以尝试通过调整一些默认系统参数来调整 TCP 堆栈。有关有哪些参数以及它们的作用的一些说明可在此处找到https://kb.globalscape.com/KnowledgebaseArticle10438.aspx