01 2016 档案
摘要:公司从svn转到git做版本管理,我搜了一下网上git的服务器,包括gitosis,gitolite等。一开始我是用的是gitosis作为git服务器的,安装过程还算比较简单,整个服务使用python写的,从github上面clone一个工程,然后python setup就可以了。不过gitos...
阅读全文
摘要:之前用git是在windows下用git的图形化界面进行操作的,这次有一个写了几天的小项目想提交到git上,linux命令行下面没有图形化的界面,所以全部需要git命令来操作。 实践之后,主要是下面几个步骤: (1) 登陆github,创建一个repo项目 (2) 在自己项目工程目录下面运...
阅读全文
摘要:我们经常使用网页,作为开发人员我们也部署过httpd服务器,比如开源的apache,也开发过httpd后台服务,比如fastcgi程序,不过对于httpd服务器内部的运行机制,却不是非常了解,前几天看见tinyhttpd,只有短短500行左右的代码,就实现了一个简单的httpd服务器的基本功能,这种
阅读全文
摘要:今天看Java一个关于多线程返回值方式的示例,发现一个自己不太能理解的问题,就是在主线程中启动了几个工作线程,主线程中也没有join,工作线程居然也是正常输出了回调的结果。这个跟linux C++下的线程知识可是不一样的,在C++下,如果main函数退出了,那么所有的子线程也就退出了,我一开始怀...
阅读全文
摘要:在我们的spring xml配置中,加上之后,Eclipse报错,提示The prefix "aop" for element "aop:config" is not bound,这是因为,需要在beans中加入xmlns:aop="http://www.springframework.org/...
阅读全文
摘要:众所周知,spring是Java中一个非常非常重要的框架,主要提供了依赖注入DI,和切面编程AOP。我多年前做过一段时间的Java,不过那时候项目中没有用Spring,所以一直也没有特别注意,最近看了一下spring的作用,觉得它提供的功能非常好,所以觉得需要多学习一下。 首先从网上下载spr...
阅读全文
摘要:队列是我们非常常用的数据结构,用来提供数据的写入和读取功能,而且通常在不同线程之间作为数据通信的桥梁。不过在将无锁队列的算法之前,需要先了解一下CAS(compare and swap)的原理。由于多个线程同时操作同一个数据,其中肯定是存在竞争的,那么如何能够针对同一个数据进行操作,而且又不用加...
阅读全文
摘要:dbMgr主要是玩家数据的读取和保存的,例如在bigworld源码分析(3)中,玩家在认证的时候,loginApp需要通过dbMgr来验证玩家数据是否合法,这就是针对玩家的账号数据进行查询。本篇中,我们主要针对以下几个问题来分析dbMgr工作原理。 (1) dbMgr如何验证玩家的账号合法性 ...
阅读全文
摘要:BaseAppMgr是用来管理BaseApp的,在整个bigworld中只有一个。本篇就BaseAppMgr的一些核心功能进行分析: (1) BaseAppMgr是如何通知BaseApp创建Entity的 (2) BaseAppMgr如何针对多个BaseApp做负载的 (3) BaseAp...
阅读全文
摘要:BaseApp负载部分,核心代码缺失。。。网上的源码中都找不到,暂时没办法分析其核心内容,很遗憾,继续寻找吧,等找到了,再继续自己的分析。
阅读全文
摘要:loginApp是整个bigworld进行用户认证的服务,是用户进入游戏的第一步。本篇主要针对loginApp的认证流程,如何和其他服务进行交互,以及loginApp针对多服务负载的不同做法进行分析。 1. loginApp用户认证流程 用户通过loginApp认证,主要是以下几个步骤: ...
阅读全文
摘要:对于网络游戏服务器开发熟悉的人,基本都知道bigworld引擎,此引擎包括客户端部分和服务器部分,已经有很多知名的网络游戏通过bigworld来构建游戏。我主要关注bigworld的服务器部分,它是一个分布式的网游服务器,理论上可以支持任意数量的玩家在线游戏,希望通过阅读其源代码能让我知道如何开...
阅读全文

浙公网安备 33010602011771号