美文网首页
netty+protocol buffer的游戏架构设计

netty+protocol buffer的游戏架构设计

作者: 少年强_d500 | 来源:发表于2020-08-31 18:23 被阅读0次

    本文主要针对TCP游戏游戏的设计,例如棋牌,桌游,回合制等。

    长话短说,分别介绍一下需要用到的框架及技术:

    netty 一款高性能底层框架封装大量易用协议支持

    protocol buffer 所转换二进制流是最少的,也就是相对json省流,速度快

    rocketMq 采用阿里消息队列,经过双11洗礼,性能和速度毋庸置疑速度ms级别

    mybatis 做数据的持久化

    redis 数据缓存

    spring boot 做为管理员

    游戏框架前沿,组成部分

    网关+逻辑 架构分层

    网关:主要用于存储用户的通道,简单逻辑过滤 通常n台

    逻辑服务器:通常n台,负载均衡处理

    作为中间件,mq用来消息转发,比如用户请求房间,相应的房主就得马上收到,流程是a用户发送tcp请求网关->网关接收到命令去趟逻辑服务器,接着逻辑服务器处理完->向N台网关广播发送消息,网关接收到推送的消息找到对应主播,如果网关1没有找到主播通道就不做处理,假如网关2有主播通道就用网关2推送给主播。像取用户信息之类的可用restTemple或者dobbo等调用,可以不用mq广播,mq只是消息广播之类的。

    实现前n多个疑问:

    疑问1:网关到底干啥用,还要不要像ngix做转发http那样

    答:可以不需要,通道直连模式,自己控制好通道链接负载,断线机制,主要用户维护用户tcp等链接

    疑问2:netty通道不能存redis怎么办

    答:存网关内存里面

    疑问3:这种用mq是否有点曲径救国,时效性如何

    答:mq是游戏分布式部署的跨服通讯的桥梁,你完全可以用一台机子全写一起,但是维护性差,一台挂了影响用户使用。在网关和逻辑交互的局域网下传输速度几乎1ms内通讯完,完全不用担心实时性问题。

    注:以上在方式架构游戏项目已线上运行

    相关文章

      网友评论

          本文标题:netty+protocol buffer的游戏架构设计

          本文链接:https://www.haomeiwen.com/subject/xshpsktx.html