{"repo":"dobyte/due","free":true,"listed":false,"github":"https://github.com/dobyte/due","clone":"git clone https://github.com/dobyte/due.git","description":"基于Go语言开发的高性能分布式游戏服务器框架","language":"Go","stars":943,"topics":["distributed-game-framework","distributed-systems","game-framework","game-server","go","go-framework","distributed-framework","game","game-engine","grpc"],"license":"MIT","category":"game-templates","readme_excerpt":"due 基于Go语言开发的高性能分布式游戏服务器框架 1.介绍 due 是一款基于Go语言开发的轻量级、高性能分布式游戏服务器框架。 其中，模块设计方面借鉴了kratos的模块设计思路，旨在为游戏服务器开发提供完善、高效、优雅、标准化的解决方案。 框架自创建至今已在多个企业级游戏项目中上线实践过，稳定性有充分的保障。 2.优势 💰 免费性：框架遵循MIT协议，完全开源免费。 💡 简单性：架构简单，源码简洁易理解。 🚠 便捷性：仅暴露必要的调用接口，减轻开发者的心智负担。 🚀 高性能：框架原生实现集群通信方案，普通机器单线程也能轻松实现20W的TPS。 🧊 标准化：框架原生提供标准化的开发规范，无论多么复杂的项目也能轻松应对。 ✈️ 高效性：框架原生提供tcp、kcp、ws等服务器，方便开发者快速构建各种类型的网关服务器。 ⚖️ 稳定性：所有发布的正式版本均已通过内部真实业务的严格测试，具备较高的稳定性。 🎟️ 扩展性：采用良好的接口设计，方便开发者设计实现自有功能。 🔑 平滑性：引入信号量，通过控制服务注册中心来实现优雅地滚动更新。 🔩 扩容性：通过优雅的路由分发机制，理论上可实现无限扩容。 🔧 易调试：框架原生提供了tcp、kcp、ws等客户端，方便开发者进行独立的调试全流程调试。 🧰 可管理：提供完善的后台管理接口，方便开发者快速实现自定义的后台管理功能。 3.功能 网关：支持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等多种分布式锁解决方案。 4.下一期新功能规划 分布式任务调度系统 5.特殊说明 在due交流群中经常有小伙伴提及到Gate、Node、Mesh之间到底是个什么关系，这里就做一个统一的解答 Gate：网关服，主要用于管理客户端连接，接收客户端的路由消息，并分发路由消息到不同的的Node节点服。 Node: 节点服，作为整个集群系统的核心组件，主要用于核心逻辑业务的编写。Node节点服务可以根据业务需要做成有状态或无状态的节点，当作为无状态的节点时，Node节点与Mesh微服务基本无异；但当Node节点作为有状态节点时，Node节点便不能随意更新进行重启操作。故而Node与Mesh分离的业务场景的价值就体现出来了。 Mesh：微服务，主要用于无状态的业务逻辑编写。Mesh能做的功能Node一样可以完成，如何选择完全取决于自身业务场景，开发者可以根据自身业务场景灵活搭配。 6.通信协议 在due框架中，通信协议","default_branch":null,"files":null,"tree":[],"storefront":"/r/dobyte","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dobyte/due/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}