专栏首页DDDService Mesh之Sidecar

Service Mesh之Sidecar

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

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

Service Mesh

简单介绍一下

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

定义

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

为什么

为什么需要这个呢?

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

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

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

对应spring cloud

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

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

serviceA --> serviceB

对应代码

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

serviceB.methodB()

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

未来

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

可能真的就像TCP一样

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

Sidecar

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

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

架构改造

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框架的基本原理

本文分享自微信公众号 - 码农戏码(coder-game),作者:朱兴生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Service Mesh 是什么,为我们解决了什么问题?

    Service Mesh 翻译为“服务网格”,作为服务间通信的基础设施层。轻量级高性能网络代理,提供安全的、快速的、可靠地服务间通讯,与实际应用部署一起,但对应...

    xcbeyond
  • 听上去很牛逼的Service Mesh到底是什么?

    我在大家的讨论中,还看到有人说 “目前的微服务架构我都没学会呢,现在又来一个下一代微服务,真学不动了”。

    Bug开发工程师
  • 微服务架构之「 下一代微服务 Service Mesh 」

    我在大家的讨论中,还看到有人说 “目前的微服务架构我都没学会呢,现在又来一个下一代微服务,真学不动了”。

    奎哥
  • Service Mesh 和 API Gateway 关系深度探讨

    关于 Service Mesh 和 API Gateway 之间的关系,这个问题过去两年间经常被问起,社区也有不少文章和资料给出解答。其中不乏 Christia...

    后端码匠
  • Service Mesh - 理论篇

    服务之间的网络通信是微服务架构的一大痛点,当微服务越来越多时,整体的调用链路就呈现一个复杂的图状:

    端碗吹水
  • Dapr 将引领云原生时代应用和中间件的未来!!

    Dapr 是由微软发起的云原生开源新项目,在今年 2 月份刚刚发布了 v1.0 正式版本。虽然推出至今不过一年半时间,但 Dapr 发展势头十分迅猛,目前已经在...

    架构师修行之路
  • Service Mesh (服务网格) 入门

    现在最火的后端架构无疑是微服务了,微服务将之前的单体应用拆分成了许多独立的服务应用,每个微服务都是独立的。

    xcbeyond
  • 从侵入式服务治理到Service Mesh

    目前service mesh技术在互联网公司中越来越流行,那么之前分布式系统是如何服务治理的呢,又是如何一步步发展成service mesh的呢?

    luoxn28
  • Service Mesh 的本质、价值和应用探索

    Service Mesh 进入国内技术社区后很快就成了微服务的“新秀”。2018 年 Service Mesh 这一技术可以用“火爆”一词去形容:Istio 1...

    Java技术江湖
  • 构建基于Spring Cloud向Service Mesh框架迁移的解决方案及思路

    作为新一代微服务架构体系,Service Mesh 技术有效地解决了 Spring Cloud 微服务架构和服务治理过程中的痛点问题,一经推出便引起了很大的反响...

    博文视点Broadview
  • 构建基于 Spring Cloud 向 Service Mesh 框架迁移的解决方案及思路

    作为新一代微服务架构体系,Service Mesh 技术有效地解决了 Spring Cloud 微服务架构和服务治理过程中的痛点问题,一经推出便引起了很大的反响...

    xcbeyond
  • 蚂蚁Service Mesh大规模落地实践与展望

    云原生的理念正如火如荼,然而真正大规模落地的公司依然屈指可数,蚂蚁作为国内比较早进行尝试的公司,经过了 2 年多的探索,沉淀出了一套切实可行的方案并最终通过了双...

    瓜农老梁
  • 全方位详解Service Mesh(服务网格)

    在数字化转型的旗帜下,IT界的一大变化是大型单体应用程序被分解为微服务架构,即小型、离散的功能单元,并且这些应用程序在容器中运行。包含所有服务代码以及依赖项的软...

    CNCF
  • Service Mesh 了解吗?

    微服务理念是提倡不同业务使用最适合它的语言开发,现实情况也确实如此,尤其是AI的兴起,一般大型互联网公司存在 C/C++、Java、Golang、PHP、Pyt...

    涤生
  • 表哥说,Service Mesh 了解吗?orz

    微服务理念是提倡不同业务使用最适合它的语言开发,现实情况也确实如此,尤其是AI的兴起,一般大型互联网公司存在 C/C++、Java、Golang、PHP、Pyt...

    芋道源码
  • 漫谈腾讯微服务平台 TSF Mesh 统一容器和虚拟机之路

    随着业务的增长,一些传统企业对诸如灰度发布、服务路由、服务熔断、服务限流等服务治理的需求越来越强烈,但他们又不想对业务代码做大量的改造,因而 Service M...

    腾讯云中间件团队
  • 企业级服务网格架构之路解读|Service Mesh在会话层解耦

    这是一本由Nginx赞助,O’Reilly出版社出品的关于服务网格的书籍,本书标题是 The Enterprise Path to Service Mesh ,...

    CNCF
  • 浅谈Database Mesh及未来

    Database Mesh,这一概念是由开源软件shardingsphere的作者张亮,最早于2018年提出的。其含义是Database Mesh 使用一个啮合...

    用户5548425
  • Service Mesh实战(Istio)

    yeedomliu

扫码关注云+社区

领取腾讯云代金券