授权协议: 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

测试用客户端。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

snake-nio 的相关资讯

还没有任何资讯

snake-nio 的相关博客

A - Fox And Snake

Problem description Fox Ciel starts to learn programming. The first task is drawing a fox! However, that turns out to...

snake_case 和camelCase

snake_case被称为蛇形命名法,一般是用来命名变量名称的,snakecase要求短语内的各个单词或缩写之间以(下划线)做间隔,如use...

CF1153E Serval and Snake

CF1153E Serval and Snake 题意简单版: 在$n\times m$的方格上有一条链(蛇),你需要通过查询来找出这条链的两个端点。 你的...

snake eating food

pygame 初始化 # 初始化游戏 pygame.init() # 初始化pygame screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGH...

HTML5 snake

snake

android google snake

代码下载 - 公共邮箱(注意看邮件时间,免得被些无聊东东...) 邮箱: code_share@163.com 密码:code_share1 2011年4月15日 23:1...

python版贪食蛇snake

python版snake

CF1153E Serval and Snake(交互题)

题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数...

NIO、Netty(NIO基础)

1、阻塞与非阻塞 阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时: 阻塞...

NIO

IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 1、面向流与面向缓冲 IO是面向流的,NIO是面向缓冲区的。 Java IO 每次从...

snake-nio 的相关问答

还没有任何问答,马上提问

评论 (2)

加载中
刚想下载下来看看,被你这个评论劝退
04/21 18:12
回复
举报
破玩意 ,都编译不了,从哪 copy 过来的 !!!
2019/09/29 15:36
回复
举报
更多评论
2 评论
16 收藏
分享
在线直播报名
返回顶部
顶部