框架介绍

due - 基于Go语言开发的高性能分布式游戏服务器框架

简介

due 是一款基于 Go 语言开发的高性能分布式游戏服务器框架。其中,模块设计方面借鉴了 kratos 的模块设计思路,旨在为游戏服务器开发提供高效、完善、标准化的解决方案。

架构

架构图

  • Gate:网关服;主要用于接收和管理客户端的连接,并通过一定的转发策略将来自于客户端的路由消息转发至后端节点服进行处理;同时,网关服也为节点服和网格服提供了直接调用 API 的能力。
  • Node:节点服;主要用于接收和处理经由网关服转发过来的路由消息,并将处理后的结果通过网关服转发至对应的客户端连接;同时,节点服也具备构建 RPC 微服务和直接调用网关服 API 的能力。
  • Mesh: 网格服;主要用于构建无状态的微服务以提供给节点服或其它第三方应用调用;同时,网格服也具备直接调用网关服 API 的能力。

优势

  • 💰 免费性:框架遵循 MIT 协议,完全开源免费。
  • 💡 简单性:架构简单,源码简洁易理解。
  • 🚠 便捷性:仅暴露必要的调用接口,减轻开发者的心智负担。
  • 🚀 高性能:框架原生实现集群通信方案,普通机器单线程也能轻松实现 20W 的 TPS。
  • 🧊 标准化:框架原生提供标准化的开发规范,无论多么复杂的项目也能轻松应对。
  • ✈️ 高效性:框架原生提供 tcp、kcp、ws 等服务器,方便开发者快速构建各种类型的网关服务器。
  • ⚖️ 稳定性:所有发布的正式版本均已通过内部真实业务的严格测试,具备较高的稳定性。
  • 🎟️ 扩展性:采用良好的接口设计,方便开发者设计实现自有功能。
  • 🔑 平滑性:引入信号量,通过控制服务注册中心来实现优雅地滚动更新。
  • 🔩 扩容性:通过优雅的路由分发机制,理论上可实现无限扩容。
  • 🔧 易调试:框架原生提供了 tcp、kcp、ws 等客户端,方便开发者进行独立的调试全流程调试。
  • 🧰 可管理:提供完善的后台管理接口,方便开发者快速实现自定义的后台管理功能。

功能

  • 网关:支持 tcp、kcp、ws 等协议的网关服务器。
  • 日志:支持 console、file、aliyun、tencent 等多种日志组件。
  • 注册:支持 consul、etcd、nacos 等多种服务注册中心。
  • 协议:支持 json、protobuf、msgpack 等多种通信协议。
  • 配置:支持 consul、etcd、nacos 等多种配置中心;并支持 json、yaml、toml、xml 等多种文件格式。
  • 通信:支持 grpc、rpcx 等多种高性能通信方案。
  • 重启:支持服务器的平滑重启。
  • 事件:支持 redis、nats、kafka、rabbitMQ 等事件总线实现方案。
  • 加密:支持 rsa、ecc 等多种加密方案。
  • 服务:支持 grpc、rpcx 等多种微服务解决方案。
  • 灵活:支持单体、分布式等多种架构方案。
  • Web:提供 http 协议的 fiber 服务器及 swagger 文档解决方案。
  • 工具:提供 due-cli 脚手架工具箱,可快速构建集群项目。
  • 缓存:支持 redis、memcache 等多种常用的缓存方案。
  • Actor:提供完善 actor 模型解决方案。
  • 分布式锁:支持 redis、memcache 等多种分布式锁解决方案。