这个项目能做什么
ioGame 是一个 Java 网络框架,专为在线游戏、物联网以及需要持久连接的内部系统而设计。它强调无锁、异步、事件驱动的架构,开箱即用地支持集群和分布式部署,无需外部中间件或数据库——只需一个 JVM。
主要特性包括:
- **轻量级**:小体积 jar 包(约 15 MB),启动快(<1 秒),内存占用低。
- **灵活架构**:三部分设计(外部服务器、Broker/网关、游戏逻辑服务器),可独立运行或融合部署,适应任何游戏类型。
- **动态扩展**:可随时添加或移除服务器,实现零停机更新。
- **去中心化集群**:无主、自组织的 broker 集群,无单点故障。
- **多协议支持**:一套代码同时支持 TCP、WebSocket、UDP;可扩展至 KCP、QUIC 等。数据协议(Protobuf、JSON)可一行切换。
- **全链路分布式追踪**:跨机器和进程的唯一追踪 ID。
- **丰富的通信模型**:请求/响应、广播、事件总线等,均支持跨进程。
- **每玩家线程安全**:框架保证单个玩家的无锁并发。
- **代码生成**:编写一次 Java,即可为 Godot、UE、Unity、Cocos Creator、React、Vue、Angular 等生成客户端 SDK。
- **开发者友好**:MVC 风格编码、JSR380 校验、断言、热切换协议、同进程亲和性,以及多服务器单进程调试。
- **安全设计**:逻辑服务器不暴露端口,免受端口扫描攻击。
- **现代 Java**:要求 JDK 21+,利用 Generational ZGC 实现亚毫秒级暂停。
ioGame 以 AGPL 3.0 许可证发布,承诺自 2022-03-01 起至少十年积极维护。它适用于游戏服务器和物联网应用,可处理数百万连接。
评论
0 评分人数达到10人后显示
登录后参与讨论。