原创

《从零开始搭建游戏服务器》架构和工具分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://linsh-tech.blog.csdn.net/article/details/53707275

一、前言:

        在正式开始搭建框架和编写代码之前,我们首先需要在大脑里构建游戏服务器的蓝图,主要思考几个问题:

1.一个完整的游戏需要划分为几个类型的服务器?

2.选择哪种或者哪些(可能同时结合多种数据库使用)类型的数据库?

3.使用什么网络通信框架和编解码(规则)工具?

4.其他工具。


二、概述:

1.服务器分类:

        对于性能要求较高、用户量较多的大型游戏类型,例如Moba或者MMO游戏,服务器通常根据功能划分为:登录服务器、游戏(逻辑)业务服务器、充值服务器和日志服务器,这种分配方式可以实现业务的分离和程序的解耦。


2.数据库的选择:

        对于游戏开发而已,选择MySQL作为数据存储服务器无疑是理智的选择,一方面是整体相较Orcle和SQL Server更加轻量级,另一方面是已有很多成熟的封装类库可以使用,无需编写太多数据库操作代码。

        处理这种永久性的数据存储数据库之外,还有另外一种用于内存缓冲的数据库,具备存取效率极高,但丢失几率相比前类服务器要高一些,主要用于需要快速操作数据,且不造成数据库死锁的方案,最常用的有Redis。存储过程大致如下:将需要频繁和快速操作的数据存储在Redis数据库(内存缓冲),然后定时从Redis将数据回写到MySQL数据库中。


3.网络通信框架:

        对于Java编写网络通信,当前最为常用的网络通信框架无疑就支持分布式开发服务器的Netty这种NIO(非阻塞异步网络通信)框架,而相应的编解码方式,则可以考虑Google开发的ProtoBuffer,数据量小而且跨平台特性好。

文章最后发布于: 2016-12-17 15:12:49
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览