从 0 开始学微服务
胡忠想
微博技术专家
64643 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
开篇词 (1讲)
结束语 (1讲)
从 0 开始学微服务
15
15
1.0x
00:00/00:00
登录|注册

33 | 下一代微服务架构Service Mesh

采用协议转换的方式
基于iptables的网络拦截
配额控制
日志记录
监控上报
安全认证
故障处理
请求路由
负载均衡
服务发现
实现方案
Service Mesh架构下的服务调用原理
传统微服务架构下的服务调用原理
Service Mesh中SideCar的部署模式
Control Plane
SideCar
适用于云原生应用
服务与服务之间通信的技术
服务网格的定义
思考题
Service Mesh的实现原理
什么是Service Mesh?
为什么Service Mesh是下一代微服务架构?

该思维导图由 AI 生成,仅供参考

今天我们将进入专栏最后一个模块,我会和你聊聊下一代微服务架构 Service Mesh。说到 Service Mesh,在如今的微服务领域可谓是无人不知、无人不晓,被很多人定义为下一代的微服务架构。那么究竟什么是 Service Mesh?Service Mesh 是如何实现的?今天我就来给你解答这些疑问。

什么是 Service Mesh?

Service Mesh 的概念最早是由 Buoyant 公司的 CEO William Morgan 在一篇文章里提出,他给出的服务网格的定义是:
A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the service mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware.
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Service Mesh作为下一代微服务架构备受关注,它是一种新型的技术,用于处理服务与服务之间的通信,尤其适用于云原生应用形式部署的服务,能够保证服务与服务之间调用的可靠性。其实现原理主要包括轻量级的网络代理(SideCar)和基于SideCar的服务治理(Control Plane)。在Service Mesh架构中,服务框架的功能都集中实现在SideCar里,并在每一个服务消费者和服务提供者的本地都部署一个SideCar,服务消费者和服务提供者只管自己的业务实现。而Control Plane则起着统一的地方与各个SideCar交互,控制服务网格中流量的运转。它包括服务发现、负载均衡、请求路由、故障处理、安全认证、监控上报、日志记录和配额控制等功能。Service Mesh的出现主要是为了解决跨语言服务调用和云原生应用服务治理的需求,为微服务架构带来了新的可能性和解决方案。 Service Mesh通过SideCar代理转发请求,把服务框架的相关实现全部集中到SideCar中,并通过Control Plane控制SideCar来实现服务治理的各种功能,这种业务与框架功能解耦的思想恰好能够解决上面两个问题。 Service Mesh在诞生不到两年的时间里取得令人瞩目的发展,在国内外都涌现出一批具有代表性的新产品,最著名的莫过于Google、IBM领导的Istio,也是Service Mesh技术的代表之作。而国内在这一方面也不遑多让,秉承了Service Mesh的思想也走出了各自的实践之路,并且已经开始在线上的核心业务中大规模使用,比如微博的Weibo Mesh、华为公有云Service Mesh以及蚂蚁金服的SOFA Mesh等。 Service Mesh中SideCar的部署模式是在每个服务节点的本地,都同等部署一个SideCar实例,为了解决跨语言服务调用和云原生应用服务治理的需求,为微服务架构带来了新的可能性和解决方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(19)

  • 最新
  • 精选
  • oddrock
    集中式的方式就类似esb模式了,缺点就是: 1、本地调用变成了远程调用,开销变大。 2、无法采用iptables这样的拦截技术实现对服务的透明无感知的调用和转发。 3、集中后可能存在网络和性能瓶颈。 但这样做也不是一无是处,在一些对微服务治理平台的资源占用要求不能太多,且需要对微服务集中管控的情况下,是不是也可以尝试啊。

    作者回复: 确实,对一些规模较小的服务调用可以尝试,这时候有点类似nginx和slb的角色

    2018-11-06
    2
    18
  • Switch
    sidecar代理模式本身定义就是作为轻量级代理,其一般是不支持高可用特性的。 部署方式也是和应用程序一起部署在父容器中,提供一些支撑性 服务。

    作者回复: 嗯

    2018-11-06
    11
  • 李二木
    老师你看了github的事故说明后,有什么感想呢?

    作者回复: 数据库自动切主是个非常高危的操作,在生产环境中使用要非常谨慎

    2018-11-06
    5
  • 文敦复
    Control Plane是一个集中式的处理单元,所有side car 共享他?每次调用都需要cp来做决断?

    作者回复: 监控、配额控制、安全都需要经过cp

    2018-11-12
    3
  • 每天晒白牙
    就像大家所说的,一个sidecar有单点问题。同时sidecar与服务一同部署可以减去网络开销,如果都调用同一个sidecar增加了网络开销。

    作者回复: 确实

    2018-11-07
    2
  • 松花皮蛋me
    service mesh是长连接的吗

    作者回复: sidecar之间通信可以保持长链接

    2018-11-06
    2
  • 爱吃回锅肉的瘦子
    第一点,是单点故障,第二点是为了实现负载均衡(个人猜想)第三点多个实例可以用来定位每一个服务?第四点不同实例可以针对性为该服务定制请求,第五点让不同系统不同的标准统一,方便调用。

    作者回复: 主要是因为单点故障和单点可能成为瓶颈

    2018-11-06
    1
  • gen_jin
    回答老师的问题:1.有单点问题 2.多一跳有性能开销 3.配置麻烦

    作者回复: 正确

    2018-11-06
    1
  • 南山
    一个sidercar存在单点故障隐患 有时候需要对服务提供者或服务提供者进行个性化配置,一个sidercar不如多个sidercar方便 集中部署sidercar更有可能出现性能瓶颈,如单个服务流量或者访问量巨大时会不会拖慢整体 暂时只能想到这些不知道对不对的点

    作者回复: 是要考虑的几个因素

    2018-11-06
    1
  • 拉欧
    Service mesh要求sidecar是轻量级的代理,这表示sidecar不具备高可用特性,如果一个sidecar代理多个实例,就会出现单点问题,尤其在流量高峰期,一旦sidecar挂了,一群服务都不能用了。

    作者回复: 这是很重要的一个原因

    2018-11-06
    1
收起评论
显示
设置
留言
19
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部