房间类游戏后台框架(二)—网关

    网关概述

   网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

    网关需求

  1.与客户端建立、保持连接

  2.过滤信息

  3.消息转发

  4.负载均衡

  5.可动态扩展

  6.白名单

  7.协议适配

   网关结构

  网关流程

网关细节

 通信使用TCP协议、protobuf,TCP包结构体为  | Len | Sign | IsCompress | extra |data | Len为包长度,Sign为标识符,IsCompress 为压缩标识符,extra为扩展,data为包携带信息由protobuf封装。

  网络库方面有一部分借鉴了Leaf网络库,提供一个接口用户只需编写函数并设置,当有用户信息传输则会调用此函数。

  在网关中定义了服务记录,用来快速寻找号码对应的服务编号。每当有服务上线会自动向ETCD进行注册,注册成功后ETCD会将此新加入的服务信息发送给网关,网关记录其号码。当客户端在游戏时,会频繁的发送信息。因此使用了结构体中的extra字段,其包含目标服务器编号,网关只需要对着内存进行寻找并转发,而不用去Redis寻找,降低延迟。

  并且在所有组件中没有专门的处理线程,由于go的特性协程所需要的资源极小,因此每个消息开一个协程进行处理,如果有需要顺序处理的可以自行创建一个队列顺序处理消息。

  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值