Ybirds Logo
伦敦
发布信息论坛发帖
-°C
商务/网络电信

开发一个游戏服务器需要掌握的开源技术

面议
862021-11-22
基本信息
服务内容:
设备租赁
联系人:
刘女士
电话:
13212390472
详情

网络库

libevent,boost.asio等网络库,网上有很多开源网络库,与其自己造轮子,不如就用开源网络库作为自己服务器的通讯库。最出名的就属libevent和boost.asio了。 - Boost:Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发。支持跨平台;

libevent:是一个C语言写的事件驱动的开源网络库;

skynet:云风写的 skynet(c + lua) 游戏服务器框架,简单好用;

Muduo:陈硕写的 Muduo(c++),陈硕全程在秀他的c++技术;

KCP: 上面提到过了,主要是对UDP的封装,有兴趣的可以看下;

协议解析

protobuf: 全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来, protobuf与XML和JSON不同在于,protobuf是基于二进制的。主要用于数据存储、传输协议格式等场合。

protobuf他的优势是对于传输比较大的数据产生的数据很紧凑很小,可以明显减小传输量。

而且处理速度也比较快,又有各种编程语言的实现,例如C++,Java,PHP等等。 缺点是不能明文编辑(数据是二进制的)。

用protobuf rpc进行数据传输很方便,所以是一个不错的选择。google protobuf只负责消息的打包和解包,并不包含RPC的实现,所以需要自己实现。

缓存

memcached:一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。可以用来做缓存,比如客户端本来每次操作都需要操作数据库,会严重影响效率,这时在中间加一层缓存系统,就提升了性能。基于http协议的通信用memcached是一个不错的选择,如果是tcp长链接,直接维护一个在线的内存对象就可以了。

Redis: 和memcached类似,主要的区别在于Redis支持存盘,可以当作数据储存,同时支持多种数据类型,比如ZSET经常用来做游戏排行榜。


本帖更新于:2024-11-15
用户点评
防骗提示1.请勿轻易泄漏私人账户信息2.请勿交纳以各种理由收取的费用3.请勿抵押重要证件原件4.警惕无具体地址、仅以QQ联系的招聘
lisheng0947
加入英鸟:4 年 288 天
热门资讯
分类信息推荐