架构设计
文章平均质量分 74
磐石区
这个作者很懒,什么都没留下…
展开
-
游戏、网关等服务借助Docker容器化并使用Kubernetes部署、更新等
Docker容器化Build and PushKubernetes容器编排EFK (Elasticsearch + Fluentd + Kibana)游戏优雅停服细节说明首次收到SIGTERM信号,先标记停服后等待所有房间主动解散,没有房间则无需等待再次收到SIGTERM信号,触发解散现有房间调整partition来执行金丝雀发布验证测试不通过可以回滚网关得益于设计成重启几乎没有代价,客户端只会感到可能因为网络不好而触发了重连部署AB服,客户端老转新服将没有明确的时间限制原创 2024-09-13 21:30:01 · 595 阅读 · 0 评论 -
架构设计:实现负责消息转发、推送的网关服务
主要实现了接受客户端附带JWT的WebSocket连接即订阅,此协程阻塞读客户端消息保持长连接,这样系统将在需要时可以向指定用户编号推送消息(待实现),在客户端请求进入房间时创建新协程gRPC双向流连接并阻塞读游戏服务端消息mq -> gate_server -> clientclient gate_server game_server重启几乎没有代价实现优雅停服网关连接游戏时会尝试从Redis中获取在线用户所在的服务进行重连(待实现)关于web_server(待实现)原创 2024-09-13 21:09:52 · 364 阅读 · 0 评论 -
架构设计:负责网络、定时、坐下、站起、重连等,支持多类游戏的无锁房间
重中之重就是想实现无锁!无锁!无锁!预计还会实现gate_server,接受并保持websocket长连接,按需双向流到game_server进行消息转发未来上述服务均会以容器的形式由k8s自动化部署、扩展、管理实现简单示例:自创的骰子游戏请查看主要对象的接口游戏主要接口调用时机框架开放的个别接口(赋予游戏的能力)连接即坐下,断开即站起游戏可以拒绝站起,将视为离线,框架负责识别重连全局错误码为适应各类游戏仅负责必要逻辑好用的定时器模块支持旁观关于匹配(待实现)游戏不停服更新原创 2024-09-13 20:48:29 · 1325 阅读 · 0 评论 -
中小型棋牌类网络游戏服务端架构
Gateway服务器仅暴露 Gateway 监听端口,Client 与 Server 之间通讯均通过 Gateway 转发Client 与 Gateway 仅建立一条连接,Gateway 可与多种 Server(Login、Game)建立连接,初步设想同一时间仅保留一条连接,内网连接的切换代价不高,当然同时保留多条连接也行Gateway 应具备以下功能:加密与解密、压缩与解压,我个人认为没有太原创 2017-04-14 17:24:08 · 10555 阅读 · 1 评论 -
中小型手机棋牌网络游戏服务端架构设计(带源码)
承接自己[《中小型棋牌类网络游戏服务端架构》]博文,用Golang实现基础架构逻辑后,准备再次谈谈我的想法。如果阅读起来感觉晦涩难懂,那就不妨直接看[源码]#Network包含Server,Client,RPC三个组件。#Error#ServerProxy(代理), Manager(管理), Login(登陆), Game(游戏), DB(数据库代理)。原创 2017-07-07 18:26:34 · 23649 阅读 · 6 评论