网关,我们预期达到以下目的:
- 减少暴露在公网的服务器
- 提升网络故障转移的效率
基本逻辑:
- 每个系统允许部署任意个网关
- 每个网关启动时守护对外和对内两个网络端口
- 游戏服务端启动时主动连接到所有网关的对内端口,并告知网关自己的ID
- 新的客户端连接产生时,随机连接到一个网关的对外端口
- 网关为每个客户端连接分配一个ID,并告知服务端有一个新的虚拟连接产生
设计意图和实现细节:
- 允许部署任意个网关的目的是实现负载均和防单点故障
- 客户端具体如何连接到网关可以由用户自定义,可以是根据负载情况或地域分配等
- 为防止恶意攻击,网关可以限制每个客户端虚拟连接数