jforgame,一个用java编写的轻量级手游服务端框架。项目只使用简单的业务功能作为演示,主要提供各种支持游戏快速开发的组件,以及对生产环境的服务进行管理的工具。
该框架吸取了笔者参与的众多手游项目的成功经验,从中精挑细选了各个模块的优秀实现。希望每个模块都能以一种优雅简便的api供外部使用。当然,由于笔者经验问题,部分实现仍有诸多不足,希望大家一起完善,一起改进,这也是开源的目的。
Mina,nio socket framework
jprotobuf, message codec
Guava,memory cache
quartz, job task scheduler
groovy, execute script code and class hotswap
proxool,mysql data pool
slf4j+log4j,for logging
game包是游戏的业务模块, 其余包则是各种辅助模块。允许game包调用其他模块的接口,尽量避免其他模块对game包的调用。各个模块包括:
cache包,使用guava cache库,用于支持系统的缓存框架
orm包,使用自定义的orm框架,用于数据库表记录与程序pojo对象的相互转换
db包,使用独立线程,异步处理玩家及公共数据的持久化
monitor包,系统监控模块,包括使用jmx对程序进行监控
net包,包括io网关模块,玩家消息自动映射到业务模块,异步处理玩家消息的线程模型
listener包,事件驱动模型
doctor包,采用基于类替换的方式实现热更新(类级热更新而非方法级)
game/gm包,游戏内部金手指命令
game/http包,游戏运营/运维后台命令
logs, 日志系统
utils包,各种工具类
项目介绍 jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。 项目特点 搭配框架博客栏目教程,快速理解项目模块原理 支持socket/websocket接入,兼容手游/页游服务端架构 通信协议支持protobuf或java反射,为客户端提供多种
项目介绍 jforgame,是一个用java编写的轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件,以及对生产环境的服务进行管理的工具。同时,为了使用户能够快速上手,项目提供了若干常用业务功能作为演示。 项目特点 搭配框架博客栏目教程,快速理解项目模块原理 支持socket/websocket接入,兼容手游/页游服务端架构 通信协议支持protobuf或java反射,为客户端提供多种
本文向大家介绍前端轻量级MVC框架CanJS详解,包括了前端轻量级MVC框架CanJS详解的使用技巧和注意事项,需要的朋友参考一下 选择正确的库 创建一个JS APP没有好的工具是很有难度的,jQuery只是操作DOM的库,没有提供任何创建APP的基础,这就是为什么我们要一个类似CanJS的专门的库。 CanJS 是一个轻量级的MVC库,提供你创建一个JS APP所需的工具。 CanJS 是一个轻
本文向大家介绍轻量级javascript 框架Backbone使用指南,包括了轻量级javascript 框架Backbone使用指南的使用技巧和注意事项,需要的朋友参考一下 Backbone 是一款基于模型-视图-控制器 MVC 模式的轻量级javascript 框架 ,可以用来帮助开发人员创建单页Web应用。 借助Backbone 我们可以使用REST的方式来最小化客户端和服务器间的数据传输,
一面 1h - [ ] static关键字 - [ ] 虚函数怎么实现,虚表存在哪里 - [ ] 多继承中的虚函数表结构 - [ ] 两个父类如果同名的虚函数怎么办 - [ ] 内存对齐是什么,规则是什么 - [ ] 怎么自定义规则,什么时候需要自定义 - [ ] 进程的内存分布 - [ ] 虚拟地址是什么,怎么映射成物理地址 - [ ] vector的内存管理 - [ ] vector的扩容机制
7.21投递,没想到要笔试,一直到8.19号才一面。 1.自我介绍 2.对游戏服务端开发的了解 3.C++和Java的区别 4.虚函数、虚函数表 5.两个父类如果同名的虚函数怎么办? 6.C++编译过程以及产生的文件存放什么内容 7.构造和析构函数简单说一下,子类调用顺序?为什么是虚函数? 8.STL中线程安全的有哪些?底层实现是什么? 9.C++多线程 10.epoll,两种触发模式的区别? 1
命名空间相关知识,命名空间作用,是否会产生标识符冲突 什么是重载,返回值不同能否重载 函数重载的底层实现原理 虚函数实现的原理 构造函数和虚构函数能否设置为虚函数 可以在头文件实现函数吗?缺点是什么? gcc编译过程,预处理阶段会把头文件内容全部包含进源文件吗? 独占指针,怎么实现不可复制,能否作为返回值,为什么? 进程和线程的区别,有独立的内存空间吗? 了解什么排序,介绍堆排序过程 手撕题,目测
八股拷打(30min) 1. tcp的重传机制有哪几种?具体描述一下 2. override、final 3. epoll的边缘触发和水平触发 4. tcp的滑动窗口 5. stl的常用容器及其底层实现数据结构 6. static的用法和作用 7. 智能指针 8. 虚函数、虚表指针 9. 内存碎片 10. 索引的优缺点 11. 索引可以用哪些数据结构实现 还有其他的一些基础八股题,后面问的跟项目有
问题内容: 是否有一个提供发布/订阅模式的Java轻量级框架? 一些理想的功能 支持泛型 向发布者注册多个订阅者 API主要是接口和一些有用的实现 完全不需要内存,持久性和事务保证。 我了解JMS,但这对我来说太过分了。发布/订阅的数据是文件系统扫描的结果,扫描结果被馈送到另一个组件进行处理,然后在将其馈给另一个组件之前进行处理,依此类推。 编辑:所有在同一过程中。bean的PropertyCha
问题内容: 是否有任何Java库允许构建没有任何应用程序服务器框架的简单独立Web服务服务器? 问题答案: Java 6包含JAX-WS,这使得在独立应用程序中托管Web服务非常容易: