如何选择一个棋牌高防服务器?

一,棋牌类服务器的特点 棋牌菠菜高防服务器q8803582

1,棋牌类不分区不分服

一般来说,棋牌游戏都是不分区不分服的。所以棋牌类服务器要满足随着用户量的增加而扩展的需要。

2,房间模式

即在同一局游戏中就是在同一个房间中,同一个房间中的人可以接收到其他人的消息。

3,每个房间的操作必须是顺序性

这个特性类似与一般游戏的回合制,每个玩家的操作都是有顺序性的。

二,需要解决的技术点

1,数据共享

因为棋牌类游戏不分区不分服,我们在设计服务器的时候,是按世界服的思想去设计,即服务器是一个n多台物理机的集群。当用户登陆服务器,创建房间时,可能根据负载均衡算法,它可以在任何一台服务器上面。所以,不管用户登陆到哪一台服务器上面了,都可以获得自己的数据。我们可以使用redis来做数据共享。

2,如何进入房间

在同一局游戏中,我们要求所有人都在同一个房间中,我们可以规定在同一个房间中的用户,必须登陆到同一台物理服务器上面。在创建房间完成之后,其他人根据房间号查找房间的时候,可以根据房间号,获取这个房间所在的服务器ip和端口,判断一个当前用户登陆的服务器ip与房间所在的服务器ip是否相同,如果相同,就不做切换,如果不一样,客户端就使用ip和端口,连接到房间所在的服务器上面。

3,保证房间操作的顺序性

创建房间成功之后,接下来的操作都要保证它的顺序性,所以房间需要有一个它自己的消息个队列。我们可以把每个房间到达服务器的消息封装为一个任务,把这个任务放到消息队列中,然后有一个任务执行者去按顺序执行这些任务。

三,系统架构

1,功能设计

a,登陆

一般都是需要接第三方登陆,登陆这一块是http操作,我们统一提供一个web服务,用来做登陆验证。因为在登陆时,调用第三方的http服务,这个过程可能很慢,如果放在逻辑服务器的话,可能会卡业务逻辑任务。因为可能不同的玩家业务请求可能同在一个线程中,如果有任务卡了,那么这个任务以后新来的请求请会卡住,导致消息延迟。

b,获取游戏公告,也放在web服务中。公告一般是游戏登陆的时候向服务器获取一次。把它放在web服务器中,与业务逻辑分离的好处是,当业务逻辑服务器维护或更新的时候,不影响用户的登陆,和获取公告,这样用户体验会好一些。

c,创建用户的id,因为棋牌类游戏服务器是世界服,无分区,所以用户的id必须是全局的。可以利用redis的incr方法,原子的递增,如果不想被别人根据userid的递增推算出有多少注册用户,递增的梯度可以随机,比如每次递增的值从1到1024中随机一个。

d,创建房间,当房间主创建房间时,房间的id需要在任何台服务器上可以查询到,所以创建房间成功后,房间id要存储在共享内存redis中,每个房间id对应一个房间所在的ip地址或服务器id.这样,当有用户要进入房间,在查询房间id时,可能判断这个房间是否和自己登陆的游戏服务器相同。

e,查找加入房间

根据房间id查询房间,查找到房间后,获取房间所在的ip地址或服务器id,如果发现和自己所登陆的服务器一样,直接可以加入房间。如果不一样,把这个房间所在的ip和端口返回给客户端,让客户端重新与房间所在的服务器建立连接,使用登陆时的token验证用户。

f,游戏脚本调用

在验证游戏是否合法时,客户端与服务器都要验证,验证的算法是一样的,所以可以使用脚本来写,写一份脚本,在服务器与客户端中同时使用。可以使用lua。同一个算法使用同一个脚本 ,这样在开发新的同类型棋牌游戏时,只需要替换一下这个脚本就行了,不用再重复开发。

3,后台管理系统

这个一般是根据运营需求开发的,每个公司不一样。不过有一点,后台管理系统可能要和游戏服务器通信,这种通信方式是采用redis的订阅/发布机制。这样可以把某个消息事件同时发送到所有的业务服务器上面。根据用户所在的服务器进行处理。

4,玩家同屏

玩家同屏是棋牌游戏中的一个重点,对于做过那些大型的arpg,或mmo游戏的程序员来说,这并不是什么难事。因为同屏就是服务器对客户端的消息进行转发。一个房间四个人,一个人出的牌或操作能被其他三个人同时看到。

因为棋牌游戏的同步数据量比较小。一般常见的同步方式有两种:

1,客户端主动拉取。

客户端定时主动向服务器请求一个用户的消息队列,当一个玩家有操作需要同步到其他玩家时,在服务器端先把这个消息放到这个用户的消息队列中。等待客户端的拉取操作。这种方式的好处是,不需要考虑网络闪断或网络不好的情况,信息都是同步获取的。缺点是,定时拉取的时间间隔很短,可能不到一秒就会拉取一次。

2,服务器主动推送

当一个用户出牌的消息需要同步给其他玩家时,服务器会获得这个玩家与服务器建立的socket连接,然后服务器使用socket 主动向客户端发送消息。

这种方式要考虑网络闪断,消息丢失的问题。因为服务器推送的消息,客户端有可能会收不到。所以客户端需要根据心跳来判断网络是否有断开过,如果有断开,需要重新从服务器拉取整个房间状态的消息。或者根据服务器发送的消息号,如果客户端发现接收到的服务器消息号有跳号的,比如应该接收10,却收到了12,说明中间有消息丢失,需要重新拉取整个房间的状态信息。

这种方式的缺点是,开发复杂,需要考虑一些网络问题。优点是,只有在有消息的时候才会推送,没有的话不推送,不占用带宽等系统资源,可以增加用户同时在线量,也就是增加了服务器的承载量。

5,数据同步和持久化

1,由于棋牌类的游戏数据少,计算量也小,所以完全可以不使用内存缓存,而直接使用redis共享内存,用户的所有数据都缓存在redis中。更新也同步更新到redis中,这样不管一个用户登陆哪一台业务服务器,都能获得自己的数据。

2,更新数据库,由于数据缓存是redis,所以活跃的用户数据都是可以从redis中直接获得的,而不用查询数据库,所以数据库的更新可以采取异步更新,而不会产会数据的延迟。需要注意的一点是,数据的异步更新必须保证是有顺序的。那么这就会产生一个问题,怎么保证用户的更新不会乱呢?

3,如何保证更新的顺序性

因为我们的业务服务器是多个的,用户可能连接其中的任何一个,如果说登陆的是服务器A,加入的房间在服务器B上,那么连接就会切换。为了保证数据更新的顺序,我们可以做一个数据库持久化服务,把需要更新数据库的任务实时发送到这台服务器上,由数据库持久化服务执行对数据库的更新。这样不管用户连接的哪台业务服务器,它的更新都是有顺序保证的。

4,一种快速简单的方法

由于棋牌类的业务少,数据更新少,所以查询可以有redis缓存,减少数据库查询的压力,而更新实行实时更新到数据库,前期不需要开发数据库持久化服务。等用户积累到一定程序之后,发现更新数据库比较慢的时候,再单独做一个数据库持久化服务。

转自博客园-游戏技术网

时间: 2024-10-25 15:47:11

如何选择一个棋牌高防服务器?的相关文章

棋牌高防服务器架构

棋牌高防服务器架构q8803582 首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构.网狐棋牌最令人印象深刻的是其稳定性和高网络负载.它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏. 在研究其服务器框架后发现,它的网络部分确实是比较优化的.它主要采用了Windows提供的IO完成端口来实现其网络组件.本服务器虽然参考了其设计,但是还是有很大的不同,因为这个服务器框架主要是用在linux

棋牌高防服务器架设教程

棋牌高防服务器架设教程q8803582 一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码.关于这个项目,有很多地方值得聊一聊.本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意的地方.这个项目的一个特别之处是,客户端是手机,用户通过移动网络与服务器通信.和PC相比,手机的处理能力极弱,而且网络流量费用昂贵.因为除了要考虑普通网络游戏的一些问题之外,这两点也需要在设计中充分考虑.首先是开发语言的选择,由于服务

网站被攻击选择哪里的高防服务器比较好呢

网站攻击正常来说是可以分为3类,分别为CC攻击.DDOS流量攻击.为了防御网站被攻击选择哪里的服务器呢?韩国高防服务器20G 200G的超高防御,可防CC攻击.DDOS流量攻击 联系 QQ80589423 联邦莹莹 CC攻击是怎么做到的? 相对来说,这种攻击的危害大一些.主机空间都有一个参数 IIS 连接数,当被访问网站超出IIS 连接数时,网站就会出现Service Unavailable .攻击者就是利用被控制的机器不断地向被攻击网站发送访问请求,迫使IIS 连接数超出限制,当CPU 资源或

如何选择棋牌高防服务器

棋牌一般首先是根据棋牌的规模决定的 棋牌服务器选择 1.选择服务器硬件配置需求 2.是选择服务带宽需求 3.服务器防御需求 目前大部分的棋牌前期运行的时候都是会选择阿里云的服器作为基础,因为阿里云前期服务器投资成本不高.但是阿里云有好处和坏处 优点 :阿里云前期成本低费用低,全国节点好访问速度快. 缺点 :阿里云没有防护的机器遇到攻击立马就死,而且阿里云带有防御机器价格贵. IDC机房:高防独立服务器优势就出来了, 当棋牌规模到达一定程度的时候对于防御带宽 有一定需求的时候高防御服务器是一个很不

183.134.17棋牌高防服务器

怎么分别机房防御是否真实 2880990294 1:叫机房提供IP进行压力测试,之后叫机房提供流量图,看看墙上流量图是不是真实 的. 2:自己叫机房提供他们的抗攻击数据流量图,是近期数值较高的. 3:有攻击的服,直接用机房机器免费测两天,测好了之后在谈. 我们是一家专业的互联网数据中心运营商.公司整合了国内的IDC运营.防DDOS 安全服务.智能DNS安防相关领域的专业公司的技术及服务优势,目前位于上海.浙江 .湖南的技术研发中心拥有一支由多名网络安全专家.IDC运营及云计算专家.软件工 程专家

你还在找棋牌 大型游戏专用 高防服务器吗

棋牌 大型游戏专用 高防服务器可咨询QQ:2881375115 棋牌 大型游戏专用 高防服务器可咨询电话:17759186719 棋牌游戏的攻击很大这个是众所周知的,不仅有小组恶意攻击,更有同行恶意竞争 所以,一个棋牌游戏想开的好 做的大必须选用一台好的服务器. 棋牌高防服务器哪里的用着好用? 棋牌高防服务器哪里有,稳定高效的棋牌服务器哪里有,安全稳定. 棋牌高防服务器免备案,高速稳定. 棋牌游戏不同阶段需要的服务器的配置不同,要求的防御也是不一 配置齐全: 高防服务器首选台州棋牌高防双线,99

为您解决棋牌免备案,高防服务器租用托管问题

棋牌高防服务器哪里的用着好用?  联系QQ:2881375115       电话:17759186719 棋牌高防服务器哪里有,稳定高效的棋牌服务器哪里有,安全稳定. 棋牌高防服务器免备案,高速稳定. 棋牌游戏不同阶段需要的服务器的配置不同,要求的防御也是不一 的,这个时候选择一台适合自己的服务器是尤为重中之重的问题!!!! 配置齐全: 高防服务器首选台州棋牌高防双线,99%免疫CC,全国首家800G单机高防,棋牌菠菜首选 拥有自主开发的强大防火墙,棋牌高防服务器租用-棋牌双线高防服务器-棋牌

用心告诉您用什么理由选择高防服务器!

不管是游戏的开发,或者是在银行中的系统使用,都是需要服务器来帮忙的,选择一个稳定高效的服务器,对于任何人来说都是不一样的,如果您对服务器的要求很严格,有一种服务器,是非常的适合您的,那就高防服务器.现在这个社会,每天玩游戏的人是非常的多的,在这样的一个过程中,选择一个稳定的服务器是非常的重要的,高防服务器正好满足了用户这方面的需求,那么高防服务器用什么来征服用户了呐.1.服务器的软件和硬件配置稳定性是游戏服务器的前提,能吸引很多游戏玩家的是游戏的质量,体验流畅度,这就要求对服务器的, 稳定性,配

游戏高防服务器如何选择

目前市面的游戏非常多,对于服务器的配置的需求的有不一样的选择. 服务器的配置的选择有高配和低配,服务器配置越高肯定是越好但是价钱肯定也就越高.所以选择一个服务器是根据的你游戏的需求来决定CPU 内存 硬盘的需求.服务器配置选择完应该考虑些什么呢,肯定是要考虑一个五星级别的口碑机房,一手机房可以提供真实的防御和带宽.一手机房可以随时调整带宽和防御可以及时解决你服务器遇到故障. 所以选择一个好的服务器最好就租用机房的服务器或者自己购买服务器托管的到机房来,这样对于自己的游戏也有保障 所以想要了解更多