前言:
而今我们对“页游服务器搭建”可能比较关切,同学们都需要学习一些“页游服务器搭建”的相关内容。那么小编也在网络上搜集了一些关于“页游服务器搭建””的相关内容,希望姐妹们能喜欢,你们一起来了解一下吧!春节以来新型肺炎蔓延全国,而为了防止病毒的传播,各地封路封城,国民基本都是宅在家里面足不出户,受此影响国内养殖、娱乐、零售、旅游、餐饮等众多行业都遭受到重创
不过有一个行业却在这个假期迎来了爆发
什么行业呢?既然只能在家,那么精神方面的娱乐就便不能少,于是在国内许多行业受疫情影响处于低迷之时,游戏行业却逆势实现了增长,毕竟无聊的时候,打游戏是不错的选择
手游上线,手游服务器也要与时俱进,及时做好数据备份工作,那么,手机游戏服务器该如何开发呢?
下面咱们就随便聊聊手机手机游戏服务器开发需要的技术
一、聊聊手游服务器开发有哪些东西要考虑
1、开发语言的选择:
工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用
业界主要的是c/c++ + Python/lua模式做手机游戏服务器,c/c++做网络通讯数据传输,python/lua做业务逻辑,这样既保持了网络传输的效率(c++),又提升开发效率(Python/lua),同时也支持热更新
当然,也有其他服务器开发语言,erlang(没用过,页游公司用的多),c#(大棒子国喜欢用,神奇的民族),Java(第一次听说时我惊呆了),node.js(少量游戏用的,还有一个node.js写的引擎叫pemolo),php(做http协议通讯的游戏时php+mysql也不失为一种好选择)
看过两个手机游戏服务器引擎
1)、firefly(9秒社团开发的一款python手机游戏服务器框架)
2)、kbengine(按bigworld的架构来设计的,c++ + python的)
2、数据库
现在比较流行的两种数据库,关系型数据库mysql和非关系型数据库mongodb,这是我用的最多的两个数据库
关于两者之间的各种比较,网上有很多,当然你也可以用其他数据库,至于sqlserver,多数开发者都反映这个数据库挺坑的
3、服务端架构
讲一下我用过的其中一种架构模型,也是公司按照bigworld架构设计的:
1)、Gate:首先要有一个Gate(网关)服务器,负责客户端连接及消息转发到Game(游戏服),保持客户端到服务端的连接
没有任何逻辑,只做消息加密和解密,以及客户端和服务器消息的转发(相当于两者之间的桥梁).
2)、GameServer:GameServer是游戏进程,提供游戏逻辑功能(采用单进程(或者单线程)模型,手机游戏服务器的瓶颈从来不在CPU,所以只做逻辑功能的话单线程足够了,在这里没必要用多线程或多进程)
3)、DBManager:实现数据库的读写,方便Game服务器异步读写数据库的数据(有些把数据库读写放在游戏服,没有单独的服务器,那恐怕游戏服单进程就不够用了)
4)、GameManager:负责管理所有的GameServer,GameServer之间消息转发,提供广播到所有Game的功能
4、协议
客户端与服务器之间协议通信,可以用tcp或者http,主要看游戏模型,如果是那种弱联网单机玩法,用http足够了,像天天酷跑之类,只在需要的时候处理一条http请求响应
不过tcp用的比较还是比较多的。现在的网络游戏大多数都是tcp,像MMORPG类游戏,我们现在的游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接
udp:其实游戏是有udp的,在一些高效率的场景下比如pvp即时战斗,tcp的拥塞控制和超时重传并不适合,有些就用的udp,然后自己做丢包重发,拿网络公平性换游戏局部的效率
现在参与开发的游戏就同时使用了http协议和tcp协议,在游戏服是单机玩法用http协议,战斗服需要长连接保存协议状态,用的tcp
5、存盘
有数据库就肯定有数据库读写操作,最主要的还是存盘(save),周期存盘还是即时存盘
即时存盘就是每一次操作数据都进行存到数据库,当然这样会导致对数据库的操作过于频繁,毕竟这是效率的瓶颈之一
周期存盘也叫固定存盘,就是每隔固定时间存盘一次,比如10秒或者15秒,这样数据库的压力就会小很多,当然自己就要在内存中做好数据操作,防止数据污染或者存盘不上导致回档
二、开发一个手机游戏服务器需要掌握的开源技术
1、libevent,boost.asio等网络库,网上有很多开源网络库,与其自己造轮子,不如就用开源网络库作为自己服务器的通讯库,最出名的就属libevent和boost.asio了
Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发,支持跨平台
libevent是一个C语言写的事件驱动的开源网络库
至于二者之间的效率,仁者见仁
当然还有很多:比如云风写的skynet(c + lua),陈硕写的muduo(c++)。都写得很好,云风写的东西简单好用,陈硕在秀他的c++技术
2、protobuf:全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库,它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来
protobuf与XML和JSON不同在于,protobuf是基于二进制的,主要用于数据存储、传输协议格式等场合
protobuf他的优势是对于传输比较大的数据产生的数据很紧凑很小,可以明显减小传输量
而且处理速度也比较快,又有各种编程语言的实现,例如C++,Java,PHP等等
缺点是不能明文编辑(数据是二进制的)
用protobuf rpc进行数据传输很方便,所以是一个不错的选择。google protobuf只负责消息的打包和解包,并不包含RPC的实现,所以需要自己实现
3、zeromq:消息队列,一个稳健,简洁的多进程通讯方案的基础。ZeroMQ 并不是一个对socket的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比 tcp 协议更高一级的协议。(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一的连接这个假设
在这里它更适合服务器与服务器之间的通信,比如逻辑服和战斗服之间进行通信。
4、memcached:一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度
可以用来做缓存,比如客户端本来每次操作都需要操作数据库,会严重影响效率,这时在中间加一层缓存系统,就提升了性能。基于http协议的通信用memcached是一个不错的选择,如果是tcp长链接,直接维护一个在线的内存对象就可以了。
类似的技术还有redis等
5、glog/zlog:你肯定需要记录日志,看爱好喽
6、tcmalloc:内存性能分析
7、distcc:分布式编译工具,之前每次修改代码都要make半个小时,用distcc进行多台电脑同时帮你编译,快很多
携手驰网卷心菜一同探索拥有一台服务器可以做哪些很酷的事情吧~
台州高防护段(TCP_SYN,ACK,RST)展示:
180.188.27.1
180.188.27.2
180.188.27.3
180.188.27.4
180.188.27.5
180.188.27.6
180.188.27.7
180.188.27.8
180.188.27.9
180.188.27.10
180.188.27.11
180.188.27.12
180.188.27.13
180.188.27.14
180.188.27.15
180.188.27.16
180.188.27.17
180.188.27.18
180.188.27.19
180.188.27.20
180.188.27.21
180.188.27.22
180.188.27.23
180.188.27.24
180.188.27.25
180.188.27.26
180.188.27.27
180.188.27.28
180.188.27.29
180.188.27.30
180.188.27.31
180.188.27.32
180.188.27.33
180.188.27.34
180.188.27.35
180.188.27.36
180.188.27.37
180.188.27.38
180.188.27.39
180.188.27.40
180.188.27.41
180.188.27.42
180.188.27.43
180.188.27.44
180.188.27.45
180.188.27.46
180.188.27.47
180.188.27.48
180.188.27.49
180.188.27.50
180.188.27.51
180.188.27.52
180.188.27.53
180.188.27.54
180.188.27.55
180.188.27.56
180.188.27.57
180.188.27.58
180.188.27.59
180.188.27.60
180.188.27.61
180.188.27.62
180.188.27.63
180.188.27.64
180.188.27.65
180.188.27.66
180.188.27.67
180.188.27.68
180.188.27.69
180.188.27.70
180.188.27.71
180.188.27.72
180.188.27.73
180.188.27.74
180.188.27.75
180.188.27.76
180.188.27.77
180.188.27.78
180.188.27.79
180.188.27.80
180.188.27.81
180.188.27.82
180.188.27.83
180.188.27.84
180.188.27.85
180.188.27.86
180.188.27.87
180.188.27.88
180.188.27.89
180.188.27.90
180.188.27.91
180.188.27.92
180.188.27.93
180.188.27.94
180.188.27.95
180.188.27.96
180.188.27.97
180.188.27.98
180.188.27.99
180.188.27.100
180.188.27.101
180.188.27.102
180.188.27.103
180.188.27.104
180.188.27.105
180.188.27.106
180.188.27.107
180.188.27.108
180.188.27.109
180.188.27.110
180.188.27.111
180.188.27.112
180.188.27.113
180.188.27.114
180.188.27.115
180.188.27.116
180.188.27.117
180.188.27.118
180.188.27.119
180.188.27.120
180.188.27.121
180.188.27.122
180.188.27.123
180.188.27.124
180.188.27.125
180.188.27.126
180.188.27.127
180.188.27.128
180.188.27.129
180.188.27.130
180.188.27.131
180.188.27.132
180.188.27.133
180.188.27.134
180.188.27.135
180.188.27.136
180.188.27.137
180.188.27.138
180.188.27.139
180.188.27.140
180.188.27.141
180.188.27.142
180.188.27.143
180.188.27.144
180.188.27.145
180.188.27.146
180.188.27.147
180.188.27.148
180.188.27.149
180.188.27.150
180.188.27.151
180.188.27.152
180.188.27.153
180.188.27.154
180.188.27.155
180.188.27.156
180.188.27.157
180.188.27.158
180.188.27.159
180.188.27.160
180.188.27.161
180.188.27.162
180.188.27.163
180.188.27.164
180.188.27.165
180.188.27.166
180.188.27.167
180.188.27.168
180.188.27.169
180.188.27.170
180.188.27.171
180.188.27.172
180.188.27.173
180.188.27.174
180.188.27.175
180.188.27.176
180.188.27.177
180.188.27.178
180.188.27.179
180.188.27.180
180.188.27.181
180.188.27.182
180.188.27.183
180.188.27.184
180.188.27.185
180.188.27.186
180.188.27.187
180.188.27.188
180.188.27.189
180.188.27.190
180.188.27.191
180.188.27.192
180.188.27.193
180.188.27.194
180.188.27.195
180.188.27.196
180.188.27.197
180.188.27.198
180.188.27.199
180.188.27.200
180.188.27.201
180.188.27.202
180.188.27.203
180.188.27.204
180.188.27.205
180.188.27.206
180.188.27.207
180.188.27.208
180.188.27.209
180.188.27.210
180.188.27.211
180.188.27.212
180.188.27.213
180.188.27.214
180.188.27.215
180.188.27.216
180.188.27.217
180.188.27.218
180.188.27.219
180.188.27.220
180.188.27.221
180.188.27.222
180.188.27.223
180.188.27.224
180.188.27.225
180.188.27.226
180.188.27.227
180.188.27.228
180.188.27.229
180.188.27.230
180.188.27.231
180.188.27.232
180.188.27.233
180.188.27.234
180.188.27.235
180.188.27.236
180.188.27.237
180.188.27.238
180.188.27.239
180.188.27.240
180.188.27.241
180.188.27.242
180.188.27.243
180.188.27.244
180.188.27.245
180.188.27.246
180.188.27.247
180.188.27.248
180.188.27.249
180.188.27.250
180.188.27.251
180.188.27.252
180.188.27.253
180.188.27.254
180.188.27.255
标签: #页游服务器搭建