初定为EGame
【Q】在纠结到底要用什么方式写博客,是原生态记录框架编写过程(有点所谓的手把手教学的感觉有木有),还是每个模块整合完毕后写分析文章,新手没有写过博客,不知道那种效果好。朋友们给点建议?
这套框架的初衷是可以整一套可以高效、快速、低成本开发网页游戏、手机游戏的后端框架,想了个名字叫EGame(Easy Game),后续会发一些客户端相关的博文。
整体框架:
1. 底层为C++,逻辑层为Lua,实现所有玩法逻辑脚本实现。
2. 网络库用 libevent,不仅有epool,更看中其bufferevent
3. 数据库为mysql,用memcache做数据缓冲层,实现离线数据处理与登录时角色是否存在查询等
4. 框架的主体结构为用IOThread和LogicThread两个线程来处理两个无锁循环消息队列
Queue<MsgRecv>* g_qRecv来处理接收到的客户端消息,
Queue<MsgSend>* g_qSend为服务端处理完逻辑之后将分发给客户端的消息
设计思路为IOThread收到客户端消息后,将其压入消息队列g_qRecv,由LogicThread读取g_qRecv队列中消息,处理完逻辑之后把要发给客户端的结果压入消息队列g_qSend,IOThread再来分发g_qSend队列消息
5. LogThread线程为写日志相关,写完log之后可用rsync同步给管理后台
6. HttpRequestThread线程用来处理与管理后台的Http请求相关,如一些后台接口
7. HotUpgradeThread线程用来监控Lua脚本是否更新,检测是否变化来重置Lua全局环境实心热更新
注:想把框架介绍写的详细一点、牛逼一点却感觉文笔匮乏啊,后续再慢慢优化改进吧,把不具体的、不够的地方慢慢补上。
【Q】想做一个框架图,却不知道用什么好,用word什么的做出来感觉不尽人意,朋友们有工具推荐吗?
初定为EGame的更多相关文章
- 【emotion】目标初定
现在的我漂浮不定,我的心是凌乱的,虽然在我面前的路有无数条,但是我却不知道哪一条路是属于我的.对于java,我掌握的东西可能并不是系统的,想想也知道,自学一年,能形成什么样子的体系呢?然而在日常的工作 ...
- ASP.NET MVC Model元数据(二)
ASP.NET MVC Model元数据(二) 前言 在上篇中,给大家留个对Model元数据的印象,并没有对Model元数据有过多的讲解,而在本篇中也不会对Model元数据的本身来解释,而是针对于它的 ...
- 高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000
生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表 11.2.0.3-->10.2.0.4,若 ...
- 点餐系统sprint3总结
转眼间,sprint3也结束了.意味着软件工程的课程结束了,我们的项目也完成了.在队友们的认真学习,专注打码,辛苦赶工后,我们的项目完成了.显然是仓促中完成的,没有完美的界面.没有无bug的项目,但是 ...
- [转载] TLS协议分析 与 现代加密通信协议设计
https://blog.helong.info/blog/2015/09/06/tls-protocol-analysis-and-crypto-protocol-design/?from=time ...
- java版复利计算
这是我修改为java的初定界面,还有很多细节问题还没有解决,希望老师可以给我多点的点评,接下来继续努力,我会把每一次的进步发上来,不断的去锻炼. 1.我所用的开发工具是ecipse 2.所有的语言为j ...
- SmartDo数据挖掘思路
SmartDo数据挖掘思路 数据挖掘部分: 数据挖掘的主要网址为: https://www.amazon.com/Best-Sellers/zgbs 挖掘部分为网址左边的入口,大约20多个,其中页面分 ...
- mysql优化--博森瑞
http://blog.itpub.net/28916011/viewspace-1758440/ 现在说一下mysql的内存和I/O方面的两个特点. 一. mysql内存特点: 1. 也有全局内存 ...
- SharePoint 学习记事(一)
记录背景: 随着公司业务的拓展,为拿到更多的项目,让原本不太信任我们的美国大佬相信我们的实力,让在美国的销售发挥他的能力,所以公司在13年下半年筹划收购了一家美国本土的公司.大约400人的规模,这个公 ...
随机推荐
- 转:PHP中实现非阻塞模式
原文来自于:http://blog.csdn.net/linvo/article/details/5466046 程序非阻塞模式,这里也可以理解成并发.而并发又暂且可以分为网络请求并发 和本地并发 . ...
- 转:Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用以及移动应用.然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug:在 ...
- BZOJ 1051 受欢迎的牛
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...
- matlab 全部的随机数函数
matlab 全部的随机数函数 (一)Matlab内部函数 a. 基本随机数 Matlab中有两个最基本生成随机数的函数. 1.rand() 生成(0,1)区间上均匀分布的随机变量.基本语法: ran ...
- jQuery折叠风琴
这个效果用jQuery做是很方便的,根本不需要搞得很复杂. 网上有些效果DEMO不仅用了jQuery还引用一两个封装文件,真是匪夷所思. 最初想到了toggle: jQuery(document).r ...
- Jump
hdu4862:http://acm.hdu.edu.cn/showproblem.php?pid=4862 题意:给你n*m的方格,每个方格中有一个数(0---9),然后你每次可以选择一个点开始,这 ...
- android 读取SD卡文件
SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件.因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android ...
- Struts2 cookie的存取
/** * Cookieの追加 * @return * @throws Exception */ private void addCookie(String name,String value){ C ...
- 静态与动态IP设置
静态IP设置 netsh interface ipv4 set address name="本地连接" source=static addr=192.168.0.212 (这个地方 ...
- Tribles(概率)
Description Problem ATribblesInput: Standard Input Output: Standard Output GRAVITATION, n."Th ...