我正在设计一个将使用 WCF 与客户端通信的客户端服务器应用程序。它可能会变得很重,并希望以分布式方式设计它。为此,我将应用程序拆分为多个服务。可以运行 N 个服务来处理请求。
- 登录服务
- 游戏服务
- 客房服务
- ETC
登录服务将能够在其上安装负载均衡器。然后它将请求发送到正在运行的游戏服务之一(可能有 N 个游戏服务在不同的机器上运行)。
我想弄清楚的是登录服务如何知道游戏服务。我可以想到(在这一点上真正的高水平)两个解决方案:
1) 当一个游戏服务出现时,它会在数据库中创建一条记录,说明它是谁以及它在哪里,登录服务会在那里检查以查找所有服务。这似乎有问题,服务下降,使列表保持最新。
2)当一个新服务加入时,它会联系一个登录服务,(不确定这会如何发生,假设某种关于如何找到它的硬编码),并向该服务注册。然后,登录服务可以维护一个 DHT 或其中的一些列表,以便他们知道将请求路由到哪里。
我是整个分布式应用程序世界的新手,并试图找出一种做事的好方法。这个项目部分是为了我自己的知识和收获,但我也希望它能发展成一个工作应用程序。
谢谢