"大厅服务器"和"分区服务器"该怎么设计?

已查看 83 次
跳至第一个未读帖子

关中刀客

未读,
2007年6月2日 10:01:422007/6/2
收件人 高性能网络编程邮件列表、求助,讨论
大家好啊,最近实现了"登陆服务器"和"注册服务器","数据库服务器",但是当要开始设计这个demo最核心的服务器的时候,我突然没有了思路,我本
来的想法是:客户端登陆的时候(包括帐号,密码,想要连接的大厅服务器)连接"登陆服务器",然后"登陆服务器"把信息发给"数据库服务器"来判断,成
功地话吧客户的信息发送给"登陆服务器",然后"登陆服务器"发给客户端所有的"大厅服务器的PORT和IP",同时把客户端的信息发送给想要连接
的"大厅服务器",然后客户端连接这个大厅服务器,已经验证,证明这个客户端是经过登陆的,这个时候客户端可以选择一个可以进入的"分区服务器",然后
进入区玩游戏。
问题是:如果把这个"大厅服务器"单独做一个"服务器"的话,就要实现和各个"分区服务器连接,以获得他们当前的信息"。另外这个"大厅服务器"还要连
接并发的很多客户端的"短连接"。当用户选择一个"分区服务器"之后,就要断开连接,然后去连接这个"分区服务器"。当用户再次退出"分区服务器"时,
要再次的连接"大厅服务器"以获得当前各个分区的信息。
由于还是学生,经验很少,所以请大家根据自己的经验指点一下,如果您有很合适的框架,很感谢能指点一下。谢谢

arcnode

未读,
2007年6月2日 10:50:272007/6/2
收件人 高性能网络编程邮件列表

登陆服务器,注册服务器、数据库服务器都做好了才开始设计大厅服务器游戏服务器等,很不理解你啊,服务器应该是通盘考虑的,什么服务器作什么应该是在动
手前就应该搞得比较清楚了。
实践出真知,问来问去不如动手实践,其实方法也是很简单的,只要开个监视,随便拿qq游戏或联众游戏开刀就能分析得有些眉目了,不清楚的地方发挥想像或
者再来就某个具体的东西发问。也可以去搜索一把别人写过的分析文章,大宝等就写过一些类似文章,虽然有些内容是猜测的,但大部分是正确的。
群里面虽然人数众多,但真正设计过服务器的人是很少的,每个实际开发小组核心人员都只有有限的几个,其他大部分人都是在别人的框架下面派生了几个类,处
理了几个消息而已,并不比你懂得更多,相信自己吧,学生嘛年轻应该是最有创造力的一群人,发挥自己的想像,去创新吧。

Kasicass

未读,
2007年6月2日 12:26:102007/6/2
收件人 dev4s...@googlegroups.com
关中刀客 写道:

个人的一点想法,见笑。。

客户端可以不需要直接连接"分区服务器",每个分区服务器,只和"大厅服务器"相
连。。每个用户登陆,"大厅服务器"给其分配一个固定的id,这个id用于"大厅/分
区"之间标识每一个客户端,玩家选择"分区"后,其实所有数据都还是发给"大厅
",由"大厅"把数据转发给"分区"。。
这样是不是更简单一下。 :-)

关中刀客

未读,
2007年6月2日 20:56:272007/6/2
收件人 高性能网络编程邮件列表
你的这个思想有个很严重的问题,大型的网络服务器端你之用一个"大厅服务器"来连接所有的客户端,问题相当的严重阿,单机上能同时连接的客户端也就
2k-3k,所以你的"大厅服务器"只能连接有限的几K个客户端。所以这个我感觉"大厅服务器"应该用短连接

Kasicass

未读,
2007年6月3日 00:27:442007/6/3
收件人 dev4s...@googlegroups.com
关中刀客 写道:

> 你的这个思想有个很严重的问题,大型的网络服务器端你之用一个"大厅服务器"来连接所有的客户端,问题相当的严重阿,单机上能同时连接的客户端也就
> 2k-3k,所以你的"大厅服务器"只能连接有限的几K个客户端。所以这个我感觉"大厅服务器"应该用短连接

这个就看设计需要的,你希望的"大厅"目标要达到多少人呢?

我不了解休闲游戏的结构,但目前一般单服的MMO网游,单台承载一般也就在 3k -
4k 左右,服与服之间也基本不通讯。然后在客户端登陆的时候直接从一台服务器
上活动所有服务器的列表,由客户端主动去连接对应的服务器。

其实我说的方法,对于单服的MMO不适用,这类游戏每个服务器跑一个自己的进程
就差不多了。:-)

关中刀客

未读,
2007年6月3日 00:53:282007/6/3
收件人 高性能网络编程邮件列表
呵呵,很感谢交流您的经验阿,我的设计理念是:大型的多人在线,因为很多的人在线,所以要把这些人分到不同的"区域服务器"去活动,其实我采用了两级缓
冲的方式:多个"大厅服务器"&&多个"分区服务器"。第一次是在用户登录的时候,选择一个"大厅服务器",所以在这个时候就可以把这么多的客户负载到
各个"大厅服务器中"。然后连接上要连接的"大厅服务器"之后,就可以选择当前大厅下众多的"分区服务器",这个时候那个分区人少,就让客户连接那个分
区,这样子的话,实际上客户真正连接的时"分区服务器"。如果我们有10个"大厅服务器",每个大厅服务器有30个"分区服务器",单机能连接2000
个客户端活动,那么这个服务器系统就能容纳10*30*2000=60W个人同时在线了。呵呵,这个只是我的理解,还是存在很多的问题的

http://groups.google.com/group/dev4server

未读,
2007年6月8日 10:12:222007/6/8
收件人 高性能网络编程邮件列表
我一般划分为 中心服务,服务,区域服务器,连接服务器。
中心服务为服务器桥梁管理器,管理服务器之间直连信息。服务为提供基础性功能,例如各区域服务器获取某人员数据等。区域服务主要就是游戏小厅等。连接服
务器为具体客户端连接处。
各个服务之间P2P直连,消息包自带路径信息,客户端连上其中一个连接服务器,即可把包转发目标服务,也会自动转发目标服务返回的结果。

> > 就差不多了。:-)- Hide quoted text -
>
> - Show quoted text -

回复全部
回复作者
转发
0 个新帖子