ioGame21 Java Netty 轻量级网络游戏服务器框架;netty 集群无中心节点、集群自动化、分布式的网络游戏服务器

ioGame是轻量级网络编程框架,用Java编写。它无锁异步、事件驱动,支持集群、分布式,无需第三方中间件。具备多种通讯方式,支持多连接和通信协议,包体小、启动快、内存少。适用于游戏、物联网等场景,学习成本低,还能与其他框架融合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ioGame

无锁异步化、事件驱动的架构设计;轻量级,无需依赖任何第三方中间件或数据库就能支持集群、分布式
通过 ioGame 可以很容易的搭建出一个集群无中心节点、集群自动化、多进程的分布式游戏服务器
包体小、启动快、内存占用少、更加的节约、无需配置文件、提供了优雅的路由访问权限控制
可同时支持多种连接方式:WS、UDP、TCP...等;框架已支持全链路调用日志跟踪特性
让开发者用一套业务代码,能轻松切换和扩展不同的通信协议:Protobuf、JSON
近原生的性能;业务框架在单线程中平均每秒可以执行 1152 万次业务逻辑
代码即联调文档、JSR380验证、断言 + 异常机制 = 更少的维护成本
框架具备智能的同进程亲和性;开发中,业务代码可定位与跳转
架构部署灵活性与多样性:既可相互独立,又可相互融合
可同时与同类型的多个游戏逻辑服通信并得到数据
逻辑服之间可相互跨进程、跨机器进行通信
支持玩家对游戏逻辑服进行动态绑定
能与任何其他框架做融合共存
对 webMVC 开发者友好
无 spring 强依赖
零学习成本
javaSE

http://game.iohao.com



ioGame 在线文档
.
ioGame 源码完全开放,最新文档阅读完全开放;使用完全自由、免费(遵守开源协议)。

启动展示

ioGame 在内存占用、启动速度、打包等方面也是优秀的。

  • 内存方面:内存占用小。
  • 启动速度方面:应用通常会在 0.x 秒内完成启动。
  • 打包方面:打 jar 包后大约 15MB ,详细请看 快速从零编写服务器完整示例


源码、示例、效率

github gitee
源码地址 ioGame 网络游戏框架-源码 ioGame 网络游戏框架-源码
示例地址 ioGame 示例集合 ioGame 示例集合

示例

地址 描述
u3d 连接示例文档 已经与 ioGame 的综合示例联调成功
cocosCreator 连接示例文档 已经与 ioGame 的综合示例联调成功
UE5 连接示例文档 已经与 ioGame 的综合示例联调成功
websocket.js 连接示例文档 websocket.js 连接的一个示例,使用 json 协议来传输交互。
ioGame 综合示例介绍 示例中有功能特性的实践、打包部署(docker、ks8)等介绍
FXGL-ioGame-移动同步 FXGL + ioGame 网络游戏中的多人移动演示。
unity Tcp 移动同步 demo 提供了 unity 与 ioGame 的【多人】移动同步演示
28 行代码做个网页聊天室 基于 ioGame 框架,用 28 行代码做一个简单的网页聊天室。

效率

地址 描述
ioGame 快速理解篇 快速掌握 ioGame 的概念
技术栈推荐与其它参考文档 游戏开发的技术栈建议,大家可以参考一下。
更多游戏服务器框架推荐 如果 ioGame 不能很好的满足你的需要,请别担心,这里还有更多的 java 游戏服务器框架推荐给你。

最小依赖

ioGame 已经上传到中央仓库,如果无法下载最新的框架源码,建议开发者的 maven 仓库代理使用原生的或腾讯云的代理,目前不推荐阿里云的代理。腾讯云代理设置可参考这里

ioGame 是轻量级的网络编程框架,不依赖任何第三方中间件或数据库就能支持集群、分布式,只需要 java 环境就可以运行。此时,你只需一个依赖即可获得整个框架,并同时支持开头介绍的全部功能特性。

<!-- https://mvnrepository.com/artifact/com.iohao.game/run-one-netty -->
<dependency>
    <groupId>com.iohao.game</groupId>
    <artifactId>run-one-netty</artifactId>
    <version>${ioGameVersion}</version>
</dependency>

ioGame 简介

你是否想要开发一个高性能、稳定、易用、自带负载均衡、避免类爆炸设计、可跨进程跨机器通信、集群无中心节点、集群自动化、有状态多进程的分布式的网络编程服务器呢?如果是的话,这里向你推荐一个由 java 语言编写的网络编程框架 ioGame。下面将会从多个方面来对框架做一些简单的介绍。

ioGame 是一个轻量级的网络编程框架,适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景;

ioGame 有以下特点:

  • 无锁异步化、事件驱动的架构设计
  • 同时支持 TCP、WebSocket、UDP 多种连接方式,并且可扩展
  • 支持 protobuf、json 等不同的通信协议
  • 集群无中心节点、集群自动化、分布式的设计
  • 真轻量级,不依赖任何第三方中间件或数据库就能支持集群、分布式
  • 提供多种通讯方式,且逻辑服之间可以相互跨机器通信
  • 分布式事件总线支持
  • 框架为开发者提供了同步、异步、异步回调的方法,用于逻辑服之间的相互访问
  • ioGame 是纯 javaSE 的,使得 ioGame 能与其他框架方便的进行集成、融合;如 spring …等
  • 学习成本低,开发体验好
  • 支持多服单进程、多服多进程的启动和部署方式
  • 提供游戏文档生成的辅助功能
  • 包体小、启动快、内存占用少
  • 提供优雅的路由访问权限控制
  • 提供了灵活的线程扩展、设置
  • 具备智能的同进程亲和性
  • 具备全链路调用日志跟踪特性
  • 业务框架提供了插件机制,插件是可插拨、可扩展的
  • JSR380验证、断言 + 异常机制 = 更少的维护成本
  • action 支持自动装箱、拆箱基础类型,用于解决协议碎片的问题

ioGame 是一个专为网络编程设计的轻量级框架,它可以帮助你快速地搭建和运行自己的网络服务器。ioGame 适用于网络游戏服务器、物联网、内部系统及各种需要长连接的场景。如各种类型和规模的网络游戏,无论是 H5、手游还是 PC 游戏,无论是简单的聊天室,还是复杂的全球同服、回合制游戏、策略游戏、放置休闲游戏、即时战斗、MMORPG 等,ioGame 都可以满足你的需求。

ioGame 在打包、内存占用、启动速度等方面也是优秀的。打 jar 包后大约 15MB,应用通常会在 0.x 秒内完成启动,内存占用小。详细请看 快速从零编写服务器完整示例

在生态融合方面,ioGame 可以很方便的与 spring 集成(5 行代码);除了 spring 外,还能与任何其他的框架做融合,如:solon …等,从而使用其他框架的相关生态。

ioGame 在架构上解决了传统框架所产生的 N*N 问题与传统架构对比)。传统架构在扩展机器时,需要借助很多第三方中间件,如:Redis、MQ、ZooKeeper …等,才能满足整体架构的运作。通常,只要引入了需要安装的中间件才能做到扩展的,那么你的架构或者说框架,基本上与轻量级无缘了。

在轻量级方面,ioGame 不依赖任何第三方中间件或数据库就能支持集群、分布式,只需要 java 环境就可以运行。这意味着在使用上简单了,在部署上也为企业减少了部署成本、维护难度。使用 ioGame 时,只需一个依赖即可获得整个框架,而无需安装其他服务,如: Nginx、Redis、MQ、Mysql、ZooKeeper、Protobuf 协议编译工具 …等。

ioGame 具备全链路调用日志跟踪特性,这在分布式下非常的实用。该特性为每个请求分配一个唯一标识,并记录在日志中,通过唯一标识可以快速的在日志中过滤出指定请求的信息。ioGame 提供的全链路调用日志跟踪特性更是强大,支持跨机器、跨进程。简单的说,从玩家的请求进来到结束,无论该请求经过了多少个游戏逻辑服,都能精准记录。

在通讯方式方面,大部分框架只能支持推送(广播)这一类型的通讯方式;ioGame 则提供了多种类型的通讯方式,通过对各种通讯方式的组合使用,可以简单完成以往难以完成的工作,并且这些通讯方式都支持跨进程、跨机器通信,且具备全链路调用日志跟踪。这些通讯方式分别是

  1. 请求响应(单次请求处理)
  2. 广播(推送)
  3. 单个逻辑服间的相互通讯(可跨机器通信、可跨进程通信)
  4. 与同类型多个逻辑服相互通讯(可跨多个机器通信、可跨多个进程通信)
  5. 脉冲通讯(可跨多个机器通信、可跨多个进程通信)
  6. 分布式事件总线(类似 MQ、Redis 发布订阅机制;可跨多个机器通信、可跨多个进程通信)

在编码风格上,ioGame 为开发者提供了类 MVC 的编码风格(无入侵的 Java Bean ),这种设计方式很好的避免了类爆炸。同时,框架为开发者提供了同步、异步、异步回调的方法,用于逻辑服之间的相互访问;这使得开发者所编写的代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值