一份游戏系统设计初稿文档[原创]

1、 系统架构特点
     1)、系统的数据库是分布式存储设计的,支持海量级数据存储;
     2)、引入Session Server和Cache实现,从而来避免频繁数据库访问对系统造成性能瓶颈;
     3)、系统是多线程的、异步的
     4)、系统是可被实时监控的,可以实时隔离
     5)、系统是安全的,用户在登录系统后,系统会生成一个随机的、不可伪做的加密串,
      后面操作需要获取用户的信息只有通过些加密串来获取;
     6)、系统的扩展是非常灵活的,所有业务功能均可作为组件方式以Webservice标准接口发布出去,
     类似 SOA 的作法。


2、  分布式存储设计
      2.1  索引数据库表设计
         2.1.1、首先建立有规则的,可分段管理的ID段

         
         2.1.2、xxx ,因为涉及到商业秘密,所有先去掉了

     
   2.2 数据库分布式存储设计
         数据库是基于分布式存储设计的,可以支持海量级数据存储;
         数据库是通过“用户号码段”的定义,对用户的数据进行分散存储;

            
          而号码段表的数据如下:
          id_range                mysql instance
            1000~5555555段        192.168.1.5
            5555556~10000000段    192.168.1.6
        

      2.3  Session Server 分布式存储设计
          以分区做法存储 Session 的数据,用户在进入游戏之前,先选择一个区再进入。
          这样用户的所有数据就存在选择的Session Server上。
          每个Sesson Server有用户数量要求,当达到一定的用户数量,将拒绝其他用户进入。


3、 安全性
      3.1:存储加密
           用户在登录系统后,系统会生成一个随机的、不可伪做的加密串,即生成一个在线用户及此用户对应的Key(加密串),
  其他操作通过此Key来获取用户的信息,包括各人物及人物属性;
 
     加密串的生成规则如下:
 由ID+客户端ip+随机码+当前时间(毫秒)组成,然后通过由Md5加密生成。
 
          这个加密串只会给一个用户一次登录使用,过期将不再有效。

      3.2:防止恶意攻击
      用户登录成功游戏之后,所有操作都会异步记录到主库的日志表中,已记录用户每天做了什么操作。
      这份数据是每天一份,同样也是分布式存储的(具体实现详见高效性章节)。
     
      防止恶意攻击也是利用这份数据进行统计的,每台Http server的Linux有一定时程序,会定时读取这份数据,
      如果发现某号码符合恶意攻击规则,则会将此号码写入到黑名单中,并拒绝操作;
     
      即便被攻破,系统对于关键操作也要留下操作日志到日志文件中,如log4j日志文件,以便事后诸葛;

     
4、 高效性
     4.1 Cache及Session Server的设计
          4.1.1:Cache
             对于xxx等不会经常变化的实体信息,可放入Cache中(如OSCache),减少对主数据库的访问;
            
          4.1.2:Session Server
             对于xxxxx等实时性要求较高的值,可放入到 Session Server中,每次需要读取或更新
             值都到Session Server中读取,减少对主数据库的频繁访问。
            
             一个xx第一次登录,会从主数据库中读取它的所有属性出来放到Session Server中,此后只要此xx在线,所有
             xx属性的值变更都是与Session Server交互操作,而系统会定时从Session Server取得数据与主数据进行同步。
            
             Session Server使用 Mysql Memory(Engine)来实现;同时 Session Server是集群式,有N台Cluster节点进行数据复制备份,保证Session Server的稳健性;
    
    
     4.2  异步处理、队列设计、Socket长连接
        4.2.1 开发思路介绍
               系统使用 wap表现层+中间件,中间件实现所有业务逻辑,是用异步IO Socket实现的,可以减少线程的创建和discard所带来的性能消耗,在同步Socket中,一般做法是创建一定数量的线程组成线程池,如果数量过多,性能是比较低的,因为当Linux OS在处理超过1000线程时,各线程换页的性能是很低下的。使用异步 IO Socket(即Java NIO)的好处是性能高,由中间件统一管理Session、Cache和Database;
              
               Http server只处理显示页面逻辑部分,而业务逻辑部分是在中间件实现的。Http Server与中间件通过TCp Socket进行通信。              
              
              
          4.2.2 异步处理
             对于用户每次操作都需要记录日志的功能,可以使用异步处理的方式来处理,Socket客户端把请求异步
             发送给Socket服务器端,无需等待结果返回,提高性能
            
          4.2.3 Socket长连接
             对于游戏用户,常用的场景是用户长时间停留在系统操作,故客户端应该Keep Socket连接不关闭,减少经常
             创建Socket所带来的性能消耗;
            
          4.2.4 队列设计
             对于用户的请求,如果中间件处理不过来,会使用一定数量的队列来存放它,当中间件空闲时,会读取队列进行处理,
             提高系统吞吐量;
 
 
5、 健壮性
        5.1 数据库集群和备份
            对于基于Memory存储的数据库,可以使用数据库的Cluster机制进行数据实时同步和备份,不会造成单点危险。
            对于基于disk存储的数据库,可以使用数据库的Cluster机制或采用C-JDBC中间件进行数据实时同步和备份。
       
        5.2 中间件冗余设计
            可以在同一服务器上使用不同端口启动同一中间件,从而实现功能冗余
       
        5.3 Http Server集群
            利用 移动DNS功能,搭建N个Http Server来提高应用的吞吐量和性能
     
     
6、 扩展性(SOA)
        6.1 组件抽象化:
           6.1.1  抽象化组件及定义好接口,所以实现基于接口来开发;组件以接口的方式提供,而实现类是可以随意切换的,这部分使用Ioc容器实现;
       
            6.1.2 接口需足够灵活,足够抽象,应包揽系统所有功能,并供外部本地JVM调用或远程调用;
       
        6.2 业务功能可重用:
            使用远程调用方式,如使用web service或其他远程调用方式,如基于二进制数据传输的hessian或基于xml的burlap。


7、 自适应性
    
       7.1 模块可测试
           应用程序是基于 JDK5.0上开发的,利用JDK5.0自带的JMX功能,可以实时监控到应用程序的运行情况。
       
       7.2 模块自检
          对于关键功能和应用,如果发现故障,系统会自动报故障,以email或手机方式发送给维护人员。
         
8、 独立性
       利用 JMX 可以实时、快速且不影响运行的情况下,隔离有问题的接入系统
      
9、    系统基础平台选型
      OS: Redhat Enterprise Linux 4
      JDK: Jdk 5.0
      Mysql: mysql 5
      Servlet Server: tomcat 5
      Web Server: Apache 2.0     
      Database Backup middelware: Mysql Cluster、C-JDBC(备选)
   
10、  系统软件架构选型
      View:Wap1.0/Wap 2.0 + FreeMarker
      MVC: Webwork 2.16
      IOC/AOP:Spring 2.0
      ORM:IBatis、Hibernate(备选)
      Java NIO:Cindy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于单片机的高空防坠落系统初稿系统概述: 该系统旨在通过单片机控制传感器和执行器等组件,实现对高空作业人员的安全防护。系统主要包括传感器模块、控制模块和执行器模块三个部分。 传感器模块: 传感器模块主要包括重力感应器、加速度传感器、气压传感器和超声波传感器等。通过这些传感器可以实时监测高空作业人员的姿态、加速度、高度等信息,从而确定其是否存在坠落的风险。 控制模块: 控制模块主要由单片机、LCD显示屏、蜂鸣器和按键等组成。单片机通过读取传感器模块的数据,进行数据处理和计算,判断高空作业人员的状态,并根据需要控制执行器模块的动作。LCD显示屏可以显示当前状态、警告信息等,蜂鸣器可以发出警报声音,按键可以设置系统参数和报警门限等。 执行器模块: 执行器模块主要包括电机、制动器和安全绳等。当系统检测到高空作业人员存在坠落风险时,单片机可以通过控制电机和制动器等设备,及时启动安全绳系统,将高空作业人员安全拦截,防止坠落事故的发生。 系统特点: 该系统具有以下特点: 1. 精度高、反应迅速,能够及时对高空作业人员的状态进行监测和判断。 2. 具有可靠的安全保护功能,能够及时启动安全绳系统,保护高空作业人员的生命财产安全。 3. 操作简单、易于维护,具有较好的可扩展性和灵活性,可以根据需要进行功能扩展和优化。 4. 节能环保,采用低功耗单片机和高效执行器等,能够有效减少能源消耗和环境污染。 总结: 综上所述,基于单片机的高空防坠落系统具有广泛的应用前景和市场需求,可以为高空作业人员的安全保护提供可靠的技术保障,同时也为相关行业的发展带来新的机遇和挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值