弹指一挥间从事游戏相关的开发工作已经十多年。在开发了六年多几经波折差点放弃的
starrydb.com项目也迎来了1.0版本的上线。虽然演示版本以及集群功能早在17年1月份就
开发完毕但修改和完善计划目前仍然排的满满当当,导致1.0上线一推再推至今仍然不甚满
意。
说起最初开发这个项目的初衷就像那盏迷雾中的绿光让人兴奋不已,在此也希望因为我
的执著而被伤害的人幸福。以下引至《thegreat gatsby》
“Gatsby believed in the green light, the orgastic future that year byyear
recedes before us.It eluded us then, but that's no matter--tomorrow we will run
faster, stretch outour arms farther.... And one fine morning---- So we beat on,
boats against thecurrent, borne back ceaselessly into the past.”
或许人们还没有意识到,游戏服务器将是继计算机操作系统之后,现代软件工程中最复
杂的计算系统。经过wow和无数游戏公司的崛起让这个系统得到了飞速发展。最初的游戏服
务器引擎可以追述到1992年的mudos。这是一个简单的文字对话系统,但可以多人在线。
因为交互简单对性能要求不高,普通的服务器就可以支持上千人同时在线。在接下来的很多
年时间内,mudos代表着游戏服务器引擎的经典原形。我们可以把这类服务器引擎统称为经
典游戏服务器引擎。
经典的游戏服务器引擎的核心构建就逻辑服务器,所谓逻辑服务器就是对用户的输入数
据进行处理,产生输出数据返回给用户。见图1
因为游戏逻辑服务器的崩溃问题和内存使用量不稳定,出现服务器不稳定进而导致数据
丢失。服务器急需一个稳定的硬盘存储服务。Mysql出现在了逻辑服务器后面替代逻辑服务
器的硬盘。见下图2
因为mysql数据库写入和读取得速度不快,数据操作需要等待时间的过长,在硬盘数据
库之前又加入了内存数据库作为快速读取的缓存服务器。
也许你看出了其中的问题,为了解决逻辑服务器不稳定丢失数据的问题,引入了缓存服
务器和数据存储服务器,但增加了系统的复杂性,导致开发难度增加进而导致逻辑服务器更
加复杂更加容易崩溃。人们花了很长的时间和想了很多的办法提高逻辑服务器的稳定性。见
下图3
因为服务器崩溃的主要原因是内存指针的泄漏,为了解决崩溃的问题产生了各种脚本语
言替代指针型语言。可服务器功能越来越多,越来越复杂,崩溃&#