首页 > 其他分享 >游戏开发(skynet框架):开服操作接入中央后台

游戏开发(skynet框架):开服操作接入中央后台

时间:2024-03-23 14:46:34浏览次数:33  
标签:http 游戏 指定 开服 单服 skynet 后台

一个需求:控制游戏单服开服接入中央后台,支持定时(指定时间)、定量(当前已开放最新服的已注册数量)的方式;

定时定量开服主要是中央后台功能,游戏服只需要接入控制开服逻辑。那么

中央后台怎么通知游戏服;

通过http协议;(skynet框架提供了http组件的支持,可以方便快速地搭建起来)

对于滚服架构,单服进程内开启一个http服务,用于处理外部http消息和发起http请求,中央后台通知到指定单服上的http服务;

对于大服架构(这时候游戏单服可能只是逻辑上的分区),集群内单独开启一个skynet进程,暂时称之为http agent节点,用于处理外部的http消息和发起http请求,当收到中央后台开服请求时,将命令转发到登录服处理;

显然这个服务/节点需要支持配置白名单,用于拦截非法IP的访问,只对指定的中央后台机器开放;中央后台通过指定服务/节点将开服指令转发进服务器集群内处理;

大服架构下,为什么不是直接通知到指定单服,而是通知到登录服呢;

上面说到,大服架构下,单服只是逻辑分区,没有物理环境的隔离。这时的单服,只是玩家数据里的一个属性。那么数据库里必然维护一份每个单服的信息,这个通知做的事情实际上只是一次写库操作,标识指定单服可被新创角玩家使用,而创角显然是在登录流程完成的;

滚服构架下http通知的会是指定单服,从环境隔离控制风险的角度看,这比单独进程的做法会更好;

另外,认为外部注入是不可信的,因此这里并非是强依赖关系,需要支持手动切换和逻辑强校验;以保证游戏服的登录流程正常。

标签:http,游戏,指定,开服,单服,skynet,后台
From: https://www.cnblogs.com/linxx-/p/18091107

相关文章

  • skynet框架:关键流程的异常处理思路
    当一个执行流程存在对外调用时,我们讨论如何保证流程的可用和安全;假设流程是关键且强制原子性;--serviceAfunctionmain() step1() skynet.call(serviceB,"lua","step2") step3() returntrueend--serviceBfunctionCMD.step2() ...endcallserviceB动......
  • skynet框架:lua service支持监控告警
    问题场景是:服务A生产大量请求消息call到服务B,服务B瞬间达到消费能力的瓶颈,导致服务A堆积大量的yield状态协程,服务B消息队列堆积大量待处理消息,业务上出现卡顿、超时甚至物理机器内存吃满被瞬间击穿的问题;我们使用云服务器产品部署游戏业务,起因是游戏线上收到反馈在某些时间节点频......
  • skynet框架:跨进程组播实现方案
    存在业务场景,从单点进程(source)批量向集群内其他节点(target)推送消息,目标节点数量可能达三位数。提供一个实现方案:target上开启进程内的组播服务,只负责当前节点的组播推送业务;服务支持接收其他节点的通知消息(目标服务只在所在节点内的组播服务上做订阅等操作,由该组播服务负责管理......
  • skynet框架:量级可控的定时任务管理模块
    存在业务玩法,在单个场景内大量使用定时事件用于触发数据更新。skynet的定时器模块实现已经非常高效,一般不必太担心性能问题,事实上玩法的初版实现正是直接使用框架定时器处理触发。几个方面是期望做得更好的:减少外部消息。框架的定时事件是通过消息机制通知到指定service的,而单......
  • skynet框架:全服广播业务
    存在业务场景,对当前在线玩家发送消息通知。这里将消息生产的服务称为source,目标玩家服务称为target。对单个玩家使用独立的lua虚拟机进行代理,称为agent,承载agent的节点称为user。区分source和target是否存在于相同的skynet节点:如果处于相同的节点,那么只是单服内进行一次进程内......
  • 从零开始写 Docker(八)---实现 mydocker run -d 支持后台运行容器
    本文为从零开始写Docker系列第八篇,实现类似dockerrun-d的功能,使得容器能够后台运行。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgroups和Rootfs基于......
  • 服务器后台运行程序的方法
    服务器后台运行程序的方法2024/3/201.后台运行代码命令要使Python程序在后台运行,可以使用nohup命令和&符号。这样可以在退出终端或者关闭SSH会话后,程序仍然在后台运行。nohuppythonyour_script.py&your_script.py是你要在后台运行的Python脚本。nohup命令的作用是即使终......
  • UNI APP 利用过滤器 解决后台返回带标签的内容时 图片过大的问题
    https://www.shanhubei.com/archives/51233.html后台返回的数据有时候没有过滤带标签,平时就只能v-html渲染出来,但是如里面有图片的话会出现图片过大超出屏幕的问题,那么普通的加样式已经不会生效了,就只能想办法来解决了。代码演示,解决办法呢,也很简单、只要利用好过滤器就好了。......
  • 自动生成流水号(后台数据)
    --存储过程实现流水号createorreplaceprocedurecux_get_serial_number(p_model_nameinvarchar2,--模块参数1p_start_noinvarchar2,--前缀参数2p_lengthinnumber,--得到流水号长度参数3p_y_ninvarchar2,--是否显示模块p_separatorinvarchar2DEFAULTnul......
  • Node+Vue毕设社区电商平台后台审核系统(程序+mysql+Express)
    本系统(程序+源码)带文档lw万字以上 文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,社区电商作为一种新兴的商业模式迅速崛起。它依托社区的地理优势和社交网络,通过线上线下相结合的方式,为用户提供便捷的购物体验。......