zoukankan      html  css  js  c++  java
  • 《从零开始搭建游戏服务器》架构和工具分析

    一、前言:

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

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

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

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

    4.其他工具。

    二、概述:

    1.服务器分类:

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

    2.数据库的选择:

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

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

    3.网络通信框架:

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

  • 相关阅读:
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    DS博客作业01--线性表
    c博客06-2019-结构体&文件
    C博客作业05--2019-指针
    图书馆查书、借书、还书
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
  • 原文地址:https://www.cnblogs.com/KylinBlog/p/7442872.html
Copyright © 2011-2022 走看看