文档章节

服务器灰度更新

梦想游戏人
 梦想游戏人
发布于 2018/11/08 22:44
字数 691
阅读 160
收藏 0

灰度更新的思想是,

例如:

    在服务器组A,B,C 情况下 全部引流到A 等到玩家引流的差不多之后(这个过程短则几分钟长则几小时)在对服务器组BC进行更新(重启等操作),完成后再把玩家引流到BC,组A玩家迁徙完成后在进行组A的更新(重启的等操作)组A完成后再起来,至此整个更新流程完成。

这个过程有一些注意事项:

            1.新进的客户端会触发客户端更新流程 因此新进的玩家是新版本的,对于新旧版本玩家还在旧的服务器,如果服务器内部没做版本兼容的话,那么就需要阻止不兼容的新旧版本的玩家之间的交互了。

            2.服务器内部的负载均衡算法能够具备屏蔽灰度区的服务器的功能,这样是为了避免服务器新进入的客户端连接到了旧版本的服务器。一般来说多级星形结构天然具备这种优势。新登录的玩家直接分配到新版本的服务器,旧服务器的玩家等自然下线即可。

            3.这个过程最好自动化处理,因为这个过程周期长,操作过程中对错误容忍度低。

 

对于玩家交互的解决方案:

        1.刺激战场的做法是直接屏蔽交互功能,比如组队邀请老版本的玩家直接提示版本过低无法邀请。

        2.服务器内部相互做兼容,这条实现难度非常大,可以不用考虑了。

        3.变相于方案1,改为被接收方(低版本)忽略邀请请求,一般这种都是服务器同时客户端,可以改用不同的消息名字来让低版本客户端忽略消息。

        4.  1和3是忽略处理 如果带有交互的话 比如弹窗告知原因那么就要考虑这种做法了,客户端登录时带上版本号 ,对于不同版本的特定需要屏蔽的RPC都单独进行拦截处理,这种的话方便简单就能处理这个关系了,这一切可以通过配表来处理。

 

TODO

 

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 36
博文 437
码字总数 124258
作品 0
成都
私信 提问
攻克痛点:DevOps线上部署的最后一公里

本文根据DBAplus社群【运维技术月·第三周】分享整理而成,文末还有好书送哦~ 因为DevOps打通了开发和运维之间以前不可逾越的鸿沟,使得线上部署已经不再仅仅是运维部门的事情了,所以要保障...

杨彪
2017/12/05
0
0
使用shell脚本实现php应用的批量更新

拓扑: control_server 192.168.1.200 lb1 192.168.1.202 lamp1 192.168.1.101 lamp2 192.168.1.102 网站: www.aaa.com 注意点: 1.所有服务器之间通过hosts来解析主机名 2.control_server与......

362475097
2017/02/15
0
0
再流弊的技术,也抵不过一次事故:兼谈技术管理

2015年,业界已经连续出现了几起大的故障。究其根本原因,都是不应该的人为事故。本文从这些大故障说起,主要谈及运维管理相关的一些话题。本文的主要内容包括: 一、不太平的互联网 二、为什...

sima2004
2016/02/05
0
0
授之以渔-运维平台发布模块一(Jenkins篇)

本着步子迈得太大容易扯蛋的原则,平台设计初衷就是能调用开源产品肯定不自己做,这样平台只作为一个综合调度中心使用,无需考虑后面具体的功能实现逻辑。 使用Jenkins还是要追溯到很久很久之...

大Q的梦想
2017/06/10
0
0
Apollo 10 — adminService 全量发布

目录 UI 界面 Portal 服务 admin 服务 总结 1. UI 界面 2. Portal 服务 当我们点击上面的发布按钮的时候,调用的当然是 portal 的接口。具体代码如下: 接口职责不多:是否符合紧急发布的数据...

莫那-鲁道
2018/08/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
1
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
6
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
7
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
3
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部