其他
极致性能的Java服务器框架
大家好,我是TJ
关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍
TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU
今天TJ君决定给大家推荐语一个Java服务器框架,它的特点就是,性能为王! 让我们一起来看下这款为性能而生的Java服务器框架,zfoo
zfoo,作为一个追求性能的框架,有几下几个特点:
极致性能,天生异步,Actor设计思想,无锁化设计,基于Spring的MVC式用法的万能RPC框架 极致序列化,原生集成目前二进制序列化和反序列化速度最快的 zfoo protocol 作为网络通讯协议 高可拓展性,单台服务器部署,微服务部署,注册中心加集群部署,网关加集群部署,随意搭配 上能做游戏服务器框架,下能做应用网站服务器框架
同时,拥有完善的工作开发流程,可以满足:
普通java项目,spring项目,分布式项目,容器项目, 不停机完美热更新代码 Excel配置自动映射和解析,在线不停机热更新Excel配置 MongoDB的自动映射框架 事件总线 时间任务调度 内置在程序里的轻量级cpu,内存,硬盘,网络监控, 无需代码和额外工具,解放运维生产力
相比较常见的框架,TJ君觉得,zfoo对有以下需求的小伙伴是更加适合的:
性能需求极高的项目,如网站和游戏服务器框架,单服滚服,全球服,直播聊天,IM系统,实时推送 节省研发成本的项目,如想节省,开发,部署,运维成本 适合作为 Godot,Unity,Cocos,Webgl,H5 的后端基础框架,网络通信协议支持 tcp udp websocket http 语言支持 Java Javascript C# Lua GDScript,可以轻易实现跨平台 喜欢 KISS法则 的项目 ,简单的配置,优雅的代码
举几个代码中的例子:
1、可能是性能最好的Java序列化和反序列化库
// zfoo协议注册,只能初始化一次
ProtocolManager.initProtocol(Set.of(ComplexObject.class, ObjectA.class, ObjectB.class));
// 序列化
ProtocolManager.write(byteBuf, complexObject);
// 反序列化
var packet = ProtocolManager.read(byteBuf);
2、可能是速度最快的RPC框架,支持 tcp udp websocket http
// 服务提供者,只需要在方法上加个注解,则自动注册接口
@PacketReceiver
public void atUserInfoAsk(Session session, UserInfoAsk ask) {
}
// 消费者,同步请求远程用户信息,会阻塞当前的线程,慎重考虑使用同步请求
var userInfoAsk = UserInfoAsk.valueOf(userId);
var answer = NetContext.getCosumer().syncAsk(userInfoAsk, UserInfoAnswer.class, userId).packet();
// 消费者,异步请求远程用户信息,不会柱塞当前的线程,异步请求成功过后依然会在userId指定的线程执行逻辑
NetContext.getCosumer()
.asyncAsk(userInfoAsk, UserInfoAnswer.class, userId)
.whenComplete(sm -> {
// do something
);
3、热更新代码,不需要停止服务器,不需要额外的任何配置,一行代码开启热更新
// 传入需要更新的class文件
HotSwapUtils.hotswapClass(bytes);
喜欢追求极致性能的小伙伴,还不赶紧来一试?
点击下方卡片,关注公众号“TJ君”
回复“性能2022”,获取仓库地址
关注我,每天了解一个牛x、好用、有趣的东东