转载自:https://blog.51cto.com/yaocoder/1374280,我在想弄懂服务器架构而不懂服务器架构、服务器原理学得似是而非的情况下,转载这篇文章,主要引入了网关服务器的概念,对我至少起到扫盲作用。公司的ProxyServer在世界服模型中,有点网关服务器的感觉。

网关服务器_第1张图片

可以看到都会有个接入服务,然后把不同的请求分发给不同的应用服务。其实这个接入服务就是“网关服务”,这种设计在nginx的负载均衡和反向代理功能中都有体现,另外在网游服务器中也大量采用了这种设计思路,由网关服务器将不同的请求分发到不同的应用服务上,等应用服务器处理完后再通过网关服务器转发给客户:

1. 这样可以把要承载高并发,高性能任务的网络服务独立出来专门做好,做强(对于http协议的场景,可以直接用nginx做网关服务器)。这样各个应用只需把重点放在对业务逻辑的处理即可。从技术架构和项目协作上都做到了解耦。

2. 有应用集群的情况下,可以通过网关服务器做负载均衡,把请求分发在负载低的服务器上。


采用带网关的服务器架构,将客户端与游戏服务器隔离,相比传统的客户端-服务端直连的架构有如下优势:

(1)作为网络通信的中转站,负责维护将内网和外网隔离开,使外部无法直接访问内部服务器,保障内网服务器的安全,一定程度上减少外挂的***。

(2)网关服务器负责解析数据包、加解密、超时处理和一定逻辑处理,这样可以提前过滤掉错误包和非法数据包。

(3)客户端程序只需建立与网关服务器的连接即可进入游戏,无需与其它游戏服务器同时建立多条连接,节省了客户端和服务器程序的网络资源开销。


服务端高度模块化:

大厅服务端将登录、用户信息、房间信息、日常任务、道具、银行、比赛、排行、活动、网站等11个功能拆分成11个独立的服务端子模块,模块之间不会相互影响,即使某模块出错也不会影响全局,提高了服务端的稳定性;与子模块平行的新功能可以自由新增挂载,扩展性强。


附:

游戏服务器架构http://www.cnblogs.com/hwcs/p/7203605.html ,文中“长链接游戏服务器的第二代网游服务器”都是懂的,后面的服务器架构就不熟了,也不是很理解