公司需要一台缓冲服务器缓解数据库频繁存取的压力,请教几位大牛后,建议fb详细看看memcached源码,采用filemap开两个进程,一进一出。这样即使逻辑服务器当机,也可从buffer服务器中恢复数据,理想状态下在出现突发性事故时可以避免回档。
关于memcached的介绍请看官方主页说明:http://www.danga.com/memcached/
最新版本是1.2.6。下载页面是这个:http://www.danga.com/memcached/download.bml
也可点击这里(memcached-1.2.6.tar.gz)直接下载压缩包。
转一篇PeakGao大牛关于数据库缓冲服务器的文章:
http://www.cppblog.com/PeakGao/archive/2006/06/10/8379.html
PeakGao
别读成痞子高
游戏数据库的思考
上个周末看了下MySQL,安装了一个试了下,重点看了c测试程序已经mysql.h中的API,发现好简单,目前公司的游戏计划也是用mysql,但是要设计好一个给游戏使用的数据库模块,也不是简单的处理一下api就能了事的,游戏数据库由于存取特别频繁,在我看来,他的设计主要解决下面几个问题:1、数据缓存的功能
想想那么平凡的数据存取,完全依赖数据库的直接操作,这个性能是可想而知的,所以应该建立起游戏服务器和数据库之间的一个桥梁(暂且命名为数据库前端),游戏服务器只跟数据库前端交互,数据库前端自己具有数据持久化的策略,不依赖于游戏服务器的操作。数据库前端在第一次取出原始数据后(如一个角色登录时的数据),将进行本地缓存,下次存取数据都是在本地进行,并不需要更新到数据库中,至于何时更新到数据库可以有数据库前端自行决定(当然也不排除游戏服务器发出持久化的通知)。
2、增量更新的功能
其实好多数据的提交中,有很大一部分的数据是没有改变的,如果在从前端提交数据到数据库的时候采取相应的增量更新的办法,应该对性能会有所提升,尤其是在几个游戏服务器操作同一个数据库的时候,因为异步的原因,增量更新能够保证数据的正确性。
3、抛包策略
游戏服务器有很多数据实在太过频繁,但是有些类型的数据的重要性一般,所以中途丢失一些也问题不大,在服务器数据交换比较频繁的时候完全可以抛弃一些,加快存取速度(不过有了前端后是不是可以忽略这点)。
4、数据分流功能
主要体现在游戏服务器的一些不同类型的数据存取可以通过不同的几个异步队列进行处理,这样即使由于数据库的某些操作延时,也只影响到操作所在队列,不会影响其他队列。
5、灵活的多前端,多数据库等支持
实现游戏服务器,数据库前端,游戏数据库之间的多对多关系,便于灵活的运用。
写完后个人感觉达到第1,2点后,这个数据库前端功能就已经比较强劲了。
1. 不要辞职。不要换工作。不要转行。不要创业。
2. 多备份几个,自己可以去的公司职位。冬天里的裁员往往会一窝蜂。上次9.11之后,我周围的人走马灯式地换工作,不是自己想换,迫不得已啊。
3. 不要主动要求老板涨工资。裁员往往会从工资高的裁起。
4. 多帮朋友留意工作机会,多介绍,轮到自己找工作的时,才会有朋友帮你。
5. 存钱。买国债。或者双币存款。别买股票。
6. 每月给父母寄钱,经济不好,越穷的人越难过。
7. 别买车。
8. 危机的后期,才最难受。现在还没开始,别觉得自己很强、没事。
9. 别离婚。别生孩子。
10. 别找小三。
十多年前,小学,和死党捏着从家里骗来的2块钱,到机厅混日子,夜以继日。一个币,可以撑一个上午的时候,机厅却已经没什么人光顾了。
如今,PSP出镜率最高的还是NEO模拟器跑KOF97,时代变了,SNK倒了,玩97的人少了,玩的人多数是用键盘了,工具多是可以用互联网联机的某某对战平台了。
生于80年代,多少人,还记得年少时,双手全是水泡的感动呢?
———————————————————————————

游戏名称:格斗之王合辑:大蛇传说 / 拳皇合辑:大蛇传说 / KOF 大蛇编 / 格斗之王’94 - 98 大蛇编合辑 / 拳皇’94 - 98 大蛇编合集
英文名称:The King of Fighters Collection : The Orochi Saga(KoF Collection Orochi)
制作厂商:SNK PLAYMORE / SNK NeoGeo
代理发行:SNK PLAYMORE CORPORATION
游戏类型:FTG - Fighting Game(2D对战格斗游戏)
载体容量:UMD×1
对应主机:Play Station Portable / Play Station 2 / Nintendo Wii
语言版本:英文(美版)
发行日期:2008年10月21日(PSP美版)
参考价格:$:39.99美元
官方网站:
http://www.snkplaymoreusa.com/psp.php
http://asia.playstation.com/tch_tw/index.php?q=node/2399
由美国SNK PLAYMORE公司制作发行,预定2008年秋季在北美地区于PSP、PS2和Wii等主流游戏机平台上推出的经典2D格斗对战游戏新作新作:《格斗之 王合辑:大蛇传说》(The King of Fighters Collection : The Orochi Saga),目前官方网站已正式开通,并且放出了游戏最新画面与信息,供玩家参考。

此次推出的《格斗之王合辑:大蛇传说》(The King of Fighters Collection : The Orochi Saga),将收录《格斗之王:大蛇篇》与《格斗之王:梦之对决篇》,(既:《KOF’94》、《KOF’95》、《KOF’96》、《KOF’97》、 《KOF’98》)集合了历代最经典的五部作品,除了再现街机版中的所有元素外,各平台版本还会加入相应的通关特典等要素,还搭载了角色颜色任意变更的“ 角色编辑”机能。
一、故事背景:
1994年,世界各地的格斗家收到一封标有“KOF”字样的邀请书,邀请他们参加“THE KING OF FIGHTERS”大赛,借此决出格斗之王,最终,来自日本的草薙京及其队友打败了幕后黑手卢卡尔。这之后在1995年,格斗家们又收到了“KOF”邀请 信。在这一届,草薙京的宿敌—八神庵也参加了比赛。最后,草薙京终于发现,幕后的黑手仍然是卢卡尔,经过又一番苦战,卢卡尔还是被草薙京、八神庵打败。

来到1996年,尽管卢卡尔被消灭了,但96年的“KOF”大赛仍如期举行。主角草薙京在赛 前被一神秘人袭击,几乎无法参赛。为了找到真相,草薙京又参加了此次比赛,并揭示了这届比赛举办的真正原因。原来,1800年前被封印的大蛇一族 (OROCHI)即将复活,他们将给人类带来毁灭性的灾难。最后,大会承办者神乐千鹤要求最终胜利者帮助她再次封印大蛇一族。突然,天国神族四天王之一的 牧师高尼茨(暴风)复活了,要阻止他们的同时也要将他们打败。到了1997年,几家大企业联合举办了97年“KOF”大赛。不出所料,大蛇八杰集剩下的几 人也出现在了本届比赛。最终为了要打破命运安排的草薙京与八神庵要齐心合力,不惜牺牲自己也要再次把大蛇再度封印起来……
二、游戏特色:
PSP版《格斗之王合辑:大蛇传说》在出场人物角色总数上,将达到90名以上,游戏将特别针 对PSP的16:9的画面进行优化。街机版备受好评的对战系统也完全保留,如:避开敌人的攻击后转为反击的“攻击回避”及“COUNTER攻击 ”(KOF’94、95版);移动之同时能避开攻击的“紧急回避”(KOF’96版);可以随意选择技(ADVANCE)及力(EXTRA)的两种战略的 “模式选择”(KOF’97、98版)。游戏还保留了直接选择隐藏头目的设定,如在:《KOF’95》中可以直接用草薙柴舟和最终头目卢卡尔、 《KOF’96》可以直接使用神乐千鹤和暴风、《KOF’97》则可以选择隐藏人物暴走八神庵、暴走利昂娜、暴走七枷社、暴走克里斯和夏尔米,但是只能在 对战中选用大蛇。

另外,《格斗之王合辑:大蛇传说》在操作方面,PS2版和PSP版游戏将沿用街机版的经典操 作方式,而Wii版游戏似乎只能使用传统手柄控制。游戏还支持网络对战,如果是PS2玩家,则可以通过PS2网卡连网对战;PSP版则支持无线Ad Hoc模式(无线模式),实现最多两名玩家联机对战,这样可以在任何地方,随时随地和朋友进行一场格斗大战,一起来一场炽热的比赛吧!游戏PSP版目前预 定2008年10月底在北美地区发售,喜欢格斗游戏和《格斗之王》系列的新老玩家千万不可错过本作。






![]()
输入 http://www.taobao.com/robots.txt
返回
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /
马云对百度的爬虫彻底说了不字,毕业的时候,投身互联网行业,曾有师兄忠告过说要有足够的心里准备,互联网行业的生存周期永远只有三个月。
在应用逻辑中,为了管理方便,偷懒的程序员们喜欢用vector来管理一块动态数组,传到底层buffer时,模块常常要求提供一块char*或char[]的缓冲区,可以通过vector的begin方法返回数组首指针地址传入子程序来解决,这里涉及到一个iterator强制转换成类型指针的问题。
在vc6中,这一步是被编译器允许的,可以通过隐式转换来完成,也就是说,不需要做额外的工作。
代码如下:
std::vector<char> buffer_list;
send(socket,buffer_list.begin(),buffer_list.size(),0);
vc8中vector的begin方法返回的iterator不能直接转换成指针用,vc6的工程转换到vc8以后出现此类问题的概率较高,笔者在编译一个开源库的过程中被此问题困扰许久,尝试用下面代码解决问题:
std::vector<char> buffer_list;
send(socket,(char*)&(*buffer_list.begin()),buffer_list.size(),0);


分享到做啥
分享到收客
