游戏架构改造之sidecar

时间总是给你意外,在使用微服务架构吗?还在考虑使用哪种微服务架构呢?要准备大干一场,学习spring cloud吗?

还在纠结这些问题时,这些技术都将要被淘汰了,下一代微服务Service Mesh出现了

Service Mesh

简单介绍一下

这个词最早使用由开发Linkerd的Buoyant公司提出,并在内部使用。2016年9月29日第一次公开使用这个术语。2017年的时候随着Linkerd的传入,Service Mesh进入国内技术社区的视野。最早翻译为“服务啮合层”,这个词比较拗口。用了几个月之后改成了服务网格

定义

首先服务网格是一个基础设施层,功能在于处理服务间通信,职责是负责实现请求的可靠传递。在实践中,服务网格通常实现为轻量级网络代理,通常与应用程序部署在一起,但是对应用程序透明。

为什么

为什么需要这个呢?

当年EJB怎么下岗的,繁重,程序员压力山大

看看现在,如果要使用微服务架构,要关注哪些呢?

  • 服务发现
  • 负载均衡
  • 路由
  • 流量控制
  • 通信可靠性
  • 弹性
  • 安全
  • 监控/日志

对应spring cloud

image

如果去掌握每一个模块,是不是压力山大,留给业务的时间能有多少

而程序员真正需要关心什么呢?

serviceA --> serviceB

对应代码

//serviceA,让serviceB执行一下methodB,完成某件事

serviceB.methodB()

仅此而已,可却要花费很大的精力去关注上面的一大串

未来

再也不用关心那些基础设施,只关注服务调用

可能真的就像TCP一样

image

第一代网络计算机系统,最早的时候开发人员需要在自己的代码里处理网络通讯的细节问题,比如说数据包顺序、流量控制等等,导致网络逻辑和业务逻辑混杂在一起,这样是不行的。接下来出现了TCP/IP技术,解决了流量控制问题,从右边的图上可以看到,功能其实没发生变化:所有的功能都在,代码还是要写。但是,最重要的事情,流程控制,已经从应用程序里面抽出来了。对比左右两边的图,抽出来之后被做成了操作系统网络层的一部分,这就是TCP/IP,这样的话应用的结构就简单了

Sidecar

Sidecar这个东西出现的时间挺长的,它在原有的客户端和服务端之间加多了一个代理

image

Sidecar扮演的角色和代理很像,但是功能就齐全很多,基本上原来微服务框架在客户端实现的功能都会对应实现。

image

架构改造

sidecar模式到底好不好,可能还没有清晰轮廓,可以通过一个改造的过程再深刻体会一下

之前在《游戏灰度发布》中表述了在gateway与gameserver之间加一层proxy,以适应灰度发布的需要

现在再加上sidecar-proxy,整体的逻辑架构图就是这样的

逻辑架构图

proxy

这个proxy的意义:

  1. 灰度发布
  2. 路由功能,在需要发布时,热备一台gameserver,让proxy切换到热备机器
  3. 限流,在来不及开服时,可以先限流,保证高可用;当然一般来讲,开服时都有充足的预备机器,不太需要;在有大型活动时,可以用来分流
  4. 如果是世界服,这个proxy更有意义

sidecar-proxy

为什么需要这个proxy?

可以先设想一下,没有这个proxy,game-server在连接跨服时需要些什么?

  1. 建立连接,序列化/反序列化
  2. 路由功能,业务规则连接哪台跨服
  3. 负载均衡,跨服流量均衡
  4. 服务发现,增减跨服时,需要动态发现

如果想更新一下负载均衡算法,怎么办?想增加一些跨服治理的功能,怎么办?

只能等待发版时,跟随game-server升级更新

而且game-server会越来越臃肿,混合了大量服务治理的功能

有了sidecar-proxy,就可以把服务治理相关功能抽离出来,简化game-server,升级服务治理功能也及时方便

在《游戏灰度发布》也提到高可用时

如果ha-proxy挂了,怎么办?就算game-server正常运行,也不能再提供服务,自己坑了自己

所以这儿需要一个proxy-cluster,当sidecar-proxy不能正常工作时,需要无缝切到proxy-cluster

每台物理机上可以放一台sidecar-proxy,当不能正常工作时,会切到cluster;当sidecar-proxy正常时,再切回来。

具体实现细节,下回分解,show you the code!

参考资料

Service Mesh: 下一代微服务 - 视频

Service Mesh:下一代微服务 - 文字

VIP_OSP--基于Thrift的RPC框架的基本原理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容