为什么是ZFOO协议?
- 该协议当前支持C ++ C#GO Java JavaScript打字gdscript lua
- 通用分布式服务器协议实现,其他语言中有实现,可以轻松 在其他平台上实现RPC,服务器和微服务
- Java二进制序列化最快的自定义格式框架,序列化的字节最少,更安全和 兼容
- 在单线程基准测试中,序列化和挑选序列化比Protobuf快50%,100%更快 比Kryo
。引入Zfooð©
- 非常快,异步,演员设计模式,无锁设计,基于春季MVC 的RPC框架
- 最快的序列化和绝对序列化ï¼使用zfoo protocol作为网络协议
- 高可伸缩性ï¼单个服务器部署,微服务部署,群集部署,网关部署
- 可以用作游戏服务器框架或网站服务器框架。
完美的工作开发过程,完成在线解决方案
- 春季项目,分布式项目,容器项目ï¼热更新代码没有 停机时间 hotswap
- Excel JSON CSV配置自动映射并解析¼在线热门 配置 storage
- Mongodb orm的自动化框架3
- 活动巴士event
- 时间任务安排scheduler
- CPU,内存,硬盘,内置在程序中的网络监视无代码和额外工具 需要monitor
A 。谁使用这个项目
- 具有极高性能要求的项目,例如网站和游戏服务器框架,单个服务器, 全球服务器,实时聊天,IM系统,实时推送
- 诸如储蓄,开发,部署,操作和维护成本等项目
- 作为godotï¼unityï¼的后端基础架构,可可emwebglï¼H5ï¼网络协议支持TCP UDP UDP WebSocket HTTP
- Keep it Simple and Stupid¼简单配置,轻量级代码
•。教程
-
FAQï¼有标准的演示显示和每个项目目录的测试文件夹中的说明,
可以直接运行 -
tank-game-server在线游戏the the the the the the the the the the the the the the tange fights friendly
困难2星- 快速明星,坦克游戏条目tank.zfoo.net
- 快速星,坦克背景管理tank-admin.zfoo.net
-
godot-bird鸟和鸟鸟1⁄4°Ed godot
-
cocos-fivechess五棋¼使用可可作为客户
£。安装和使用
1.环境要求和安装
JDK 11+ï¼ OpenJDK 或 Oracle JDK ï¼maven安装到本地存储库
If you do not have JDK 11+ installed, the quick installation method is to download directly
from Project Structure, Platform Settings, SDKs in the upper right corner of Idea
2. protocol最快的序列化和避难所化
// zfoo protocol registration, can only be initialized once
ProtocolManager.initProtocol(Set.of(ComplexObject.class, ObjectA.class, ObjectB.class));
// serialization
ProtocolManager.write(byteBuf, complexObject);
// deserialization
var packet = ProtocolManager.read(byteBuf);
3. net最快的RPC框架,支持TCP UDP UDP WebSocket HTTP
// Service provider, only need to add an annotation to the method, the interface will be automatically registered
@PacketReceiver
public void atUserInfoAsk(Session session, UserInfoAsk ask) {
}
// Consumers, synchronously requesting remote service, will block the current thread
var userInfoAsk = UserInfoAsk.valueOf(userId);
var answer = NetContext.getCosumer().syncAsk(userInfoAsk, UserInfoAnswer.class, userId).packet();
// Consumers, asynchronously requesting remote service, and will still execute logic in the current thread after the asynchronous
NetContext.getCosumer()
.asyncAsk(userInfoAsk, UserInfoAnswer.class, userId)
.whenComplete(sm -> {
// do something
);
4. hotswap热更新代码,无需停止服务器,没有其他配置,只有一行代码即可开始热门更新
// Pass in the class file that needs to be updated
HotSwapUtils.hotswapClass(bytes);
5.基于mongodbï¼的orm自动映射框架辅助缓存是使用caffeine设计的,以完全释放数据库压力
// You don't need to write sql and any configuration yourself, define a table in the database directly through annotation definitions
@EntityCache
public class UserEntity implements IEntity<Long> {
@Id
private long id;
private String name;
}
// update database data
entityCaches.update(userEntity);
6. event使用观察者设计模式,解开不同的模块并提高代码的质量
// To receive an event, you only need to add an annotation to the method and the method will be automatically listen for the event
@EventReceiver
public void onMyNoticeEvent(MyNoticeEvent event) {
// do something
}
// fire an event
EventBus.submit(MyNoticeEvent.valueOf("My event"));
7.基于Cron表达的scheduler调度框架
@Scheduler(cron = "0/1 * * * * ?")
public void cronSchedulerPerSecond() {
// do something
}
8. storage Excel到类自动映射框架,您只需要定义与Excel相对应的类,然后直接解析Excel
冷0冷1 Cold0
- 。提交规格ð
- 欢迎喜欢这个项目的人一起维护这个项目,并注意以下内容 提交代码时的规格
- 代码格式使用Intellij Idea的默认格式
- conventional-changelog-metahub