我正在开发一个应该在具有不同任务/角色的多台机器上运行的应用程序,但是同步(某种负载平衡(游戏)服务器,其中一些机器处理不同的世界,一台机器处理聊天和库存,其他机器处理传入的网络连接......)。
在开始时,应用程序实例应该在彼此之间创建TCP连接。但是我如何在C#中实现它?
答案 0 :(得分:1)
首先,您需要可以联系正确游戏服务器的负载平衡服务器。这可能是架构中最薄弱的一点。您可以使用DNS循环和多个负载均衡器来限制风险。
如果所有服务器都放在同一网络上,您可以使用UDP广播来允许负载均衡器自动发现所有游戏服务器。数据包将类似“嘿,我是一个库存服务器,连接到我”,然后负载平衡服务器将创建一个TCP连接,该连接仅用于监控游戏服务器(CPU使用率等,以确保服务器没有太多的工作)。