网狐棋牌服务器搭建要注意什么

随着互联网发展飞速,也间接地帮助了棋牌类游戏的发展,玩家也越来越多,做网络棋牌类游戏的商家也日益增多。而由于棋牌类游戏的迅猛超速发展以及巨额利润的刺激,棋牌类游戏被如火如荼的开发者,但我们国内为了彻底清除网络环境,所以这类游戏在国内机房是不能放置的。
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】数据库技术天团集体亮相,分享一线生产实践经验,告诉你踩过的坑、走过的路,都是老司机,靠谱!干货分享,不可错过!&&
对于棋牌类的网站,我们应该如何选择服务器呢?  随着互联网发展飞速,也间接地帮助了棋牌类游戏的发展,玩家也越来越多,做网络棋牌类游戏的商家也日益增多。而由于棋牌类游戏的迅猛超速发展以及巨额利润的刺激,棋牌类游戏被如火如荼的开发者,但我们国内为了彻底清除网络环境,所以这类游戏在国内机房是不能放置的。
  因此,在这一宏观条件下,境外机房/国外机房服务器便成了黄金选择地。那么,现在问题又来了,选择国外的服务器又将会面临一个问题:这种传统的棋牌游戏面相的群体是大陆群体,要求到大陆的速度比较快,然而在国外的服务器里面,韩国机房的速度在全国最快,而且我们大陆与韩国相邻,不需要备案,对内容的限制也少,更不存在南北网络不通的问题,所以,韩国服务器租用便成了棋牌游戏平台的最佳选择!
韩国服务器一方面是在国外机房不受国内的管辖,安全有保障,另一方面,韩国的网络无论是速度还是覆盖率都是全球最好的,平均速度是国内的十一倍、香港的三倍、有国际双线之称!在整个亚洲访问的速度与稳定性都非常理想,而且韩国KT机房配置有16G的高硬防,对于各种防御的表现也很不错,是最适合这类网站的服务器。
阿里云依据网站不同的发展阶段,提供更合适的架构方案,有效降低网站的开发运维难度和整体IT成本,并保障网站的安全性...
是解决用户结构化数据搜索需求的托管服务,支持数据结构、搜索排序、数据处理自由定制。 为您的网站或应用程序提供简单...
深度挖掘企业与企业、企业与人物的关系,通过多位交叉分析及智能算法,构建基于企业全息画像和企业关系网络的风险洞察、...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
2017杭州云栖大会火热抢票
Loading...棋牌游戏服务器的架构设计需要注意哪些点
棋牌游戏服务器的架构设计需要注意哪些点
爱玩的游戏
以下内容从棋牌类服务器的特点;需要解决的技术点;系统架构;服务器架构;关于网关的问题这五个方向来具体为大家讲解棋牌游戏服务器的架构设计中的一些问题。一、棋牌类服务器的特点1、棋牌类不分区不分服一般来说,棋牌游戏都是不分区不分服的。所以棋牌类服务器要满足随着用户量的增加而扩展的需要。2、房间模式即在同一局游戏中就是在同一个房间中,同一个房间中的人可以接收到其他人的消息。3、每个房间的操作必须是顺序性这个特性类似与一般游戏的回合制,每个玩家的操作都是有顺序性的。二、需要解决的技术点1、数据共享因为棋牌类游戏不分区不分服,我们在设计服务器的时候,是按世界服的思想去设计,即服务器是一个n多台物理机的集群。当用户登陆服务器,创建房间时,可能根据负载均衡算法,它可以在任何一台服务器上面。所以,不管用户登陆到哪一台服务器上面了,都可以获得自己的数据。我们可以使用redis来做数据共享。2、如何进入房间在同一局游戏中,我们要求所有人都在同一个房间中,我们可以规定在同一个房间中的用户,必须登陆到同一台物理服务器上面。在创建房间完成之后,其他人根据房间号查找房间的时候,可以根据房间号,获取这个房间所在的服务器ip和端口,判断一个当前用户登陆的服务器ip与房间所在的服务器ip是否相同,如果相同,就不做切换,如果不一样,客户端就使用ip和端口,连接到房间所在的服务器上面。3、保证房间操作的顺序性创建房间成功之后,接下来的操作都要保证它的顺序性,所以房间需要有一个它自己的消息个队列。我们可以把每个房间到达服务器的消息封装为一个任务,把这个任务放到消息队列中,然后有一个任务执行者去按顺序执行这些任务。三、系统架构1、功能设计登陆。一般都是需要接第三方登陆,登陆这一块是http操作,我们统一提供一个web服务,用来做登陆验证。因为在登陆时,调用第三方的http服务,这个过程可能很慢,如果放在逻辑服务器的话,可能会卡业务逻辑任务。因为可能不同的玩家业务请求可能同在一个线程中,如果有任务卡了,那么这个任务以后新来的请求请会卡住,导致消息延迟。获取游戏公告,也放在web服务中。公告一般是游戏登陆的时候向服务器获取一次。把它放在web服务器中,与业务逻辑分离的好处是,当业务逻辑服务器维护或更新的时候,不影响用户的登陆,和获取公告,这样用户体验会好一些。创建用户唯一的id,因为棋牌类游戏服务器是世界服,无分区,所以用户的id必须是全局唯一的。可以利用redis的incr方法,原子的递增,如果不想被别人根据userid的递增推算出有多少注册用户,递增的梯度可以随机,比如每次递增的值从1到1024中随机一个。创建房间,当房间主创建房间时,房间的id需要在任何台服务器上可以查询到,所以创建房间成功后,房间id要存储在共享内存redis中,每个房间id对应一个房间所在的ip地址或服务器id.这样,当有用户要进入房间,在查询房间id时,可能判断这个房间是否和自己登陆的游戏服务器相同。查找加入房间。根据房间id查询房间,查找到房间后,获取房间所在的ip地址或服务器id,如果发现和自己所登陆的服务器一样,直接可以加入房间。如果不一样,把这个房间所在的ip和端口返回给客户端,让客户端重新与房间所在的服务器建立连接,使用登陆时的token验证用户。游戏脚本调用。在验证游戏是否合法时,客户端与服务器都要验证,验证的算法是一样的,所以可以使用脚本来写,写一份脚本,在服务器与客户端中同时使用。可以使用lua。同一个算法使用同一个脚本 ,这样在开发新的同类型棋牌游戏时,只需要替换一下这个脚本就行了,不用再重复开发。2、后台管理系统这个一般是根据运营需求开发的,每个公司不一样。不过有一点,后台管理系统可能要和游戏服务器通信,这种通信方式最好是采用redis的订阅/发布机制。这样可以把某个消息事件同时发送到所有的业务服务器上面。根据用户所在的服务器进行处理。3、玩家同屏玩家同屏是棋牌游戏中的一个重点,对于做过那些大型的arpg,或mmo游戏的程序员来说,这并不是什么难事。因为同屏就是服务器对客户端的消息进行转发。一个房间四个人,一个人出的牌或操作能被其他三个人同时看到。因为棋牌游戏的同步数据量比较小。一般常见的同步方式有两种:1、客户端主动拉取客户端定时主动向服务器请求一个用户的消息队列,当一个玩家有操作需要同步到其他玩家时,在服务器端先把这个消息放到这个用户的消息队列中。等待客户端的拉取操作。这种方式的好处是,不需要考虑网络闪断或网络不好的情况,信息都是同步获取的。缺点是,定时拉取的时间间隔很短,可能不到一秒就会拉取一次。2、服务器主动推送当一个用户出牌的消息需要同步给其他玩家时,服务器会获得这个玩家与服务器建立的socket连接,然后服务器使用socket 主动向客户端发送消息。这种方式要考虑网络闪断,消息丢失的问题。因为服务器推送的消息,客户端有可能会收不到。所以客户端需要根据心跳来判断网络是否有断开过,如果有断开,需要重新从服务器拉取整个房间状态的消息。或者根据服务器发送的消息号,如果客户端发现接收到的服务器消息号有跳号的,比如应该接收10,却收到了12,说明中间有消息丢失,需要重新拉取整个房间的状态信息。这种方式的缺点是,开发复杂,需要考虑一些网络问题。优点是,只有在有消息的时候才会推送,没有的话不推送,不占用带宽等系统资源,可以增加用户同时在线量,也就是增加了服务器的承载量。4、数据同步和持久化1、由于棋牌类的游戏数据少,计算量也小,所以完全可以不使用内存缓存,而直接使用redis共享内存,用户的所有数据都缓存在redis中。更新也同步更新到redis中,这样不管一个用户登陆哪一台业务服务器,都能获得自己的最新数据。2、更新数据库,由于数据第一缓存是redis,所以活跃的用户数据都是可以从redis中直接获得的,而不用查询数据库,所以数据库的更新可以采取异步更新,而不会产会数据的延迟。需要注意的一点是,数据的异步更新必须保证是有顺序的。那么这就会产生一个问题,怎么保证用户的更新不会乱呢?3、如何保证更新的顺序性因为我们的业务服务器是多个的,用户可能连接其中的任何一个,如果说登陆的是服务器A,加入的房间在服务器B上,那么连接就会切换。为了保证数据更新的顺序,我们可以做一个数据库持久化服务,把需要更新数据库的任务实时发送到这台服务器上,由数据库持久化服务执行对数据库的更新。这样不管用户连接的哪台业务服务器,它的更新都是有顺序保证的。4、一种快速简单的方法由于棋牌类的业务少,数据更新少,所以查询可以有redis缓存,减少数据库查询的压力,而更新实行实时更新到数据库,前期不需要开发数据库持久化服务。等用户积累到一定程序之后,发现更新数据库比较慢的时候,再单独做一个数据库持久化服务。四、服务器架构1、登陆时,客户端首先向登陆的web服务器请求登陆信息,登陆成功之后,返回登陆的token,为了适应大规模的web请求和登陆服务的稳定,可以使用nginx做负载均衡。2、登陆成功之后,请求负载均衡服务器,获取一台连接的业务服务器。这个负载均衡服务器可以和登陆web在一个进程中,也可以独立出来。3、拿到登陆成功的token和需要连接的业务服务器的ip和端口之后,再去连接业务服务器。连接成功之后,要使用token到登陆服务器去验证,这个用户是否登陆了。4、同一个房间的用户要连接到同一台物理服务器上面。在上面已经说过了。5、redis用来做共享缓存。6、mysql做持久化存储。7、数据库持久化服务器,统一做数据入库操作。五、关于网关的问题1、网关的作用转发消息包业务的负载均衡,比如A业务由服务器a处理,B业务由服务器b处理,由网关进行转发。维护与客户端的连接带宽的整合,一般的云服务都是按购买的服务器计算带宽的。通过一台服务器转发消息,可以只购买一个大带宽就可以了,以节约成本。2、棋牌类游戏需要网关吗?我认为不太需要,因为棋牌类游戏业务比较单一,做的最多的就是消息同屏转发。最多是再有一些任务或活动,这些由一台服务器直接处理完全可以搞定。而且开发网关也是一个复杂的工作,没必要在这个上面花太多的时间。
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
爱玩的游戏
百家号 最近更新:
简介: 谁说程序猿每天都是敲代码,猿类也会玩。
作者最新文章 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
棋牌游戏平台服务器配置要求
下载积分:1300
内容提示:棋牌游戏平台服务器配置要求
文档格式:DOC|
浏览次数:190|
上传日期: 15:00:46|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1300 积分
下载此文档
该用户还上传了这些文档
棋牌游戏平台服务器配置要求
官方公共微信把你最喜欢的栏目添加到这里来哦
最智能的电子游艺网站
澎湃新闻记者 黄小河
日 14:44 来源:澎湃新闻
最智能的电子游艺网站也不能说我们这一趟完全失败了陈宇迅速的走到张栋的面前,看着悬浮在空中的佳肴咽了口口水说:“张栋!能不能......拜托你一件事?”。
最智能的电子游艺网站视频
:众人也都把刚才发生的看在眼里,此时我们只有聚在一起才更有安全感。也没用任何人跑动,都静静的看着那只丧尸发威。“轻松击败四阶丧尸?你确定不是击杀?”云鼎至尊彩票网田神景世看着真姬娜,无奈的摇了摇头,为了旺里,田神景世不去帮助林天逸等人,已属不义,最后还差点害死了林天逸,这是放在哪都说不过去的。“唰。”
“赵国边塞,正和妖兽打仗呢,你们几个普通人还是在后面帮忙抬伤员吧!”我高呼了一声回去的路程因为愉悦的心情似乎快了许多,而后承枫更是带着众人到夏威夷的各个角落去玩耍。最智能的电子游艺网站既然那彼得不能确定没有任何信息提到阿契里斯名字的法语发音克莱尔终于躲开对方的视线,把脸转向一边。两人来到一个自由、安全的环境还不到一分半钟。在继续前进之前,克莱尔想要好好整理一下自己的感情。第二天。
最智能的电子游艺网站详解
李斗瞪大了眼睛,对于自己的实力他还是很骄傲的,可以说,他不认为能被任何人战胜,他能征服任何人,没有想到的是自己既然只是下一流的高手,这是不是开天大的玩笑。克里斯将打火机紧紧地贴在胸口,突然感受到了妹妹的那份可爱。她为了安慰那个濒死的男人,竟舍得将自己常年随身携带的打火机送给了对方。即便这个人是抓她的成员之一。呼吸随之急促起来“没错,神威只有当你被宇宙意志认可,成为神王时,能量中才会衍生出这种东西。也正是这种东西的存在,才使得任何人,就算是能力再强,在真神的面前,还是属于弱不禁风的类型……”最智能的电子游艺网站得全靠自己了对于碧翠丝的问题,艾柯的回答的大意始终是一致的,那就是:“对于这个问题,我并不认为我有什么必要,得向学姐或者是这里的任何一位前辈说明,因为这个大概算得上是我个人的**。所以我认为是不必要向着各位前辈说明的。”艾达点了点头。恐怕里昂将贝尔托鲁奇误认为是犯人了吧。虽然当艾达和贝尔托鲁奇开始访话之后,那种想法就会瞬间消失,但是作为艾达来说却并不想让里昂知道更多的事情。看来有必要慎重地选择接下来要说的话。呼吸随之急促起来……..远处的三位家主,白烈,米勒,还有贾森,他们突然看到了那战场的中间,空间出现了波动,而很快的,波动结束之后,那里出现了四个人!最智能的电子游艺网站最先把目光移开的是史蒂夫。他的脸色明显已经不再苍白,而且比一开始还要红润。他转过身朝桌子的方向走去,瑞贝卡则红着脸来到书架旁边。。
责任编辑:程娱澎湃新闻报料:9 & 澎湃新闻,未经授权不得转载
关键词 >> 诗书中华 诵读经典
最智能的电子游艺网站热新闻
澎湃新闻APP下载
最智能的电子游艺网站热话题

我要回帖

更多关于 棋牌游戏服务器架构 的文章

 

随机推荐