游戏服务器 NIO 框架 snake-nio

LGPL
Java 查看源码»
跨平台
2019-07-15
jack15102257296

snake 百万级别的分布式游戏服务器实时通讯 NIO 框架

数据库建议:Ignite/cockroach
发现服务:Zookeeper

1. messagecreator:

基于Netty的Java消息对象池,基于Netty零拷贝专为Netty做优化。

长时间运行,消息池和Netty总内存占用不超过2G,不用考虑GC。


2. zk-common

Zookeeper基础服务发现组件。


3. login

登陆服务器,Http请求,实际应用中改为Https,集中登陆时用户排队。

返回用户登陆状态、token和connector的IP和Port。

可以部署多个login服务器,去除单点,不存储状态。

命令服务:Zookeeper发现centerserver,Netty长连接到centerserver,
    根据数据库表user_state.id%centerserver个数来查找。

4. centerserver

中心服务器,可以部署多个,去除单点,不存储状态。

根据数据库表user_state.id%centerserver总个数来查找。

处理用户登陆、退出等消息。

5. connector

网关服务器,部署多个。

每个客户端连接在用户认证成功时,创建一个到transfer服务器的连接,把消息转发过去。

这两个连接用同一个EventLoop,Netty零拷贝加快传输速度。

性能:服务器 i3 CPU, 16G 内存,部署login,centerserver,connector(回传)。
   客户端:ThinkPad笔记本,40字节消息 * 1000000个每用户,800k/s平均传输速率。
   connector CPU占用不超过11%。
   推算:每秒可以处理8 * 800K = 6.4M加密消息(回传测试)。

命令服务:Zookeeper发现centerserver,Netty长连接到centerserver,
    根据数据库表user_state.id%centerserver个数来查找。
   
认证算法:mangos认证算法,Secure Remote Password(安全远程密码),现在明文传输token。
加密算法:mangos RC4算法。

6. transfer

转发服务器,可以直接用来做逻辑服务器。

转发服务器开始发送的都是明文。

如果后台功能较多,可以直连逻辑服务器(邮件)、聊天服务器(家族、好友)、排行服务器、跨服战斗服务器等。

逻辑服务器直连充值服务器。


7. client

测试用客户端。

的码云指数为
超过 的项目
加载中

评论(2)

诗和远方_888
破玩意 ,都编译不了,从哪 copy 过来的 !!!
hurry_zh
hurry_zh
为什么用Lombok这么low的东西

暂无资讯

暂无问答

c语言贪吃蛇小游戏源代码运行成功

//******************************************************** //作者:清风jyf //功能:小游戏贪吃蛇 //运行环境:vc++6.0 //日期:2013.3.5 //******************************************...

2013/03/05 00:00
1K
1
javascript 贪吃蛇(三)【附带源码】

在javascript 贪吃蛇(一)及javascript 贪吃蛇(二)中介绍了关于贪吃蛇的实现。其实整个编写的过程并非一开始就是像前面展示的代码那样具有面向对象的特征。在完成这个小游戏的过程中还是遇...

2016/03/31 17:01
133
2
javascript 贪吃蛇(一)

snake怎么玩,这里就不做介绍,大家都应该知道。写这篇东西只是作为自己的一个学习测验跟记录用。因为俗话说的好,好记忆不如烂笔头,还是记下来比较好。 以前没有怎么用javascript写过小游戏...

2016/03/31 17:01
16
1
有问题的贪吃蛇(自己撞自己没事)

#include<stdio.h> #include<windows.h> #include<time.h> #include<stdlib.h> #include<conio.h> #define N 21 FILE *fp; int S; void boundary(void);//开始界面 void end(void); //结束 ...

2012/12/26 12:16
74
0
一步步教你怎么用python写贪吃蛇游戏

目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)...

06/27 07:00
185
0
javascript 贪吃蛇(二)

在javascript 贪吃蛇(一) 中,我们创建了Canvas、Snake及Food对象,本部分将继续进行余下的部分。 在开始进行余下部分的介绍前先将Utils.js公布出来,该js文件中设置了一些常用的方法。源码...

2016/03/31 17:01
12
1
用Golang做了一个命令行贪吃蛇游戏

用Golang做了一个命令行贪吃蛇游戏 项目介绍 项目链接:https://gitee.com/lwow2025/snake-go 最近看了一本做几个小项目的书,突然就想用Golang做一个命令行贪吃蛇,也没啥特殊原因。 软件架...

2018/09/26 22:04
442
0
POJ 3434 Terrarium:题目解答源码

POJ 3434 Terrarium:题目解答源码 A zoology research lab has a terrarium with rare species of snakes.Terrarium is a flat box filled with soil,and has a glass top allowing to watc...

2016/09/26 16:26
15
0
python版贪食蛇snake

python版snake

2015/10/25 02:42
188
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部