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

34 | Istio:Service Mesh的代表产品

思考题
Citadel
Mixer
Pilot
Proxy
Istio整体架构
Istio架构及其基本组件

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

专栏上一期我们聊了 Service Mesh,并以 Linkerd 为例介绍了 Service Mesh 的架构。随着技术发展,现在来看 Linkerd 可以说是第一代 Service Mesh 产品,到了今天当我们再谈到 Service Mesh 时,往往第一个想到的是Istio。为什么我认为 Istio 可以称得上是 Service Mesh 的代表产品呢?在我看来主要有以下几个原因:
相比 Linkerd,Istio 引入了 Control Plane 的理念,通过 Control Plane 能带来强大的服务治理能力,可以称得上是 Linkerd 的进化,算是第二代的 Service Mesh 产品。
Istio 默认的 SideCar 采用了Envoy,它是用 C++ 语言实现的,在性能和资源消耗上要比采用 Scala 语言实现的 Linkerd 小,这一点对于延迟敏感型和资源敏感型的服务来说,尤其重要。
有 Google 和 IBM 的背书,尤其是在微服务容器化的大趋势下,云原生应用越来越受欢迎,而 Google 开源的 Kubernetes 可以说已经成为云原生应用默认采用的容器平台,基于此 Google 可以将 Kubernetes 与 Istio 很自然的整合,打造成云原生应用默认的服务治理方案。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Istio是Service Mesh的代表产品,相比Linkerd,Istio引入了Control Plane的理念,通过Control Plane能带来强大的服务治理能力,可以称得上是Linkerd的进化,算是第二代的Service Mesh产品。Istio默认的SideCar采用了Envoy,它是用C++语言实现的,在性能和资源消耗上要比采用Scala语言实现的Linkerd小,这一点对于延迟敏感型和资源敏感型的服务来说,尤其重要。此外,有Google和IBM的背书,尤其是在微服务容器化的大趋势下,云原生应用越来越受欢迎,而Google开源的Kubernetes可以说已经成为云原生应用默认采用的容器平台,基于此Google可以将Kubernetes与Istio很自然的整合,打造成云原生应用默认的服务治理方案。Istio的架构由Proxy和Control Plane组成,Proxy采用Envoy,具有低性能损耗、高可扩展性和动态可配置等特点。Control Plane包括Pilot、Mixer以及Citadel,Pilot实现流量控制,包括服务发现和负载均衡、请求路由、超时重试和故障注入等功能。通过对Istio架构的详细分解,可以更好地理解其各部分的实现原理,为读者提供了深入了解Istio的机会。 Mixer的作用是实现策略控制和监控日志收集等功能,实现方式是每一次Proxy转发的请求都要调用Mixer。Mixer的实现是可扩展的,通过适配层来适配不同的后端平台,这样的话Istio的其他部分就不需要关心各个基础设施比如日志系统、监控系统的实现细节。 Mixer实现了两级的缓存结构,以减少对Mixer的调用以尽量降低服务调用的延迟。 Mixer的监控、日志收集功能也是通过配置监控yaml文件来实现的,Proxy发起的每一次服务调用都会先调用Mixer,把监控信息发给Mixer,Mixer再根据配置的yaml文件来决定监控信息该发到哪。 Citadel的作用是保证服务之间访问的安全,它的工作原理需要Proxy、Pilot以及Mixer的配合。Citadel里存储了密钥和证书,通过Pilot把授权策略和安全命名信息分发给Proxy,Proxy与Proxy之间的调用使用双向TLS认证来保证服务调用的安全,最后由Mixer来管理授权和审计。 总的来说,Istio采用模块化设计,各个模块之间高度解耦,使得Istio的

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

全部留言(9)

  • 最新
  • 精选
  • mgxian
    日志使用批量加队列加异步处理

    作者回复: 对

    2018-11-08
    25
  • 文敦复
    批量+异步!

    作者回复: 对,异步合并

    2018-11-12
    3
  • 风轨
    日志不是业务关键数据,丢一部分也问题不大,异步处理能减少正常业务时间等待。

    作者回复: 对,可以批量加uibh

    2018-11-09
    3
  • 拉欧
    可以配置日志上传的百分比,减少上传的数量

    作者回复: 如果需要全量日志呢

    2018-11-08
    1
  • 极极
    老师,我有几个关于长连的疑问 ,希望您能解答,谢谢! 1. 上边提到 “理论上每一次的服务调用 Proxy 都需要调用 Mixer" ,但是对于长连,或者 grpc 的长连来说,也需要每次都调用mixer吗? 2. 长连的负载策略如何实现?istio 是不是做了其他优化或兼容? 3. 还有长连的可靠性如何确保?发版时 pod 更换如何确保新旧长连接的交替?
    2020-07-21
    3
  • 松花皮蛋me
    异步上传日记,不需要ack
    2018-11-08
    2
  • 锋尘
    Kafka 顺序写硬盘据说效率堪比内存,未验证过!
    2019-09-06
    1
  • 技术修行者
    如果对日志收集的实时性要求不高,可以尝试用异步的方式来解决。
    2019-09-22
  • MJ
    异步处理
    2018-12-29
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部