当前位置: 首页 > article >正文

微服务的流量管理-服务网格

对于单体应用来说,一般只有流入和流出两种流量。而微服务架构引入了跨进程的网络通信,流量发生在服务之间。由许多服务组成了复杂的网络拓扑结构,每次请求都会产生流量。

这些流量如果没有妥善的管理,整个应用的行为和状态将会不可控。

请添加图片描述
流量的类型,如上图所示,一般有两种:南北流量和东西流量
所谓南北流量,就是从客户端到服务端的流量。对于传统的数据中心而言,它是从外部进入,或离开数据中心的流量;对于微服务而言,它是从应用外部进入应用内部,或从应用内部流出到应用外部的流量。

所谓东西流量,就是微服务内部的服务到服务之间的流量。对于传统数据中心而言,它代表数据中心内不同服务器之间的流量,或不同数据中心之间的流量;对于微服务而言,它代表微服务应用中服务与服务之间的流量。

在微服务架构中,东西流量远远大于南北流量,用户一个请求,可以需要由多个不同服务协作完成,即一个南北流量可以会产生多个东西流量。因此微服务中对东西流量的管理是重点。

**服务网格(service mesh)**的云方案就是为管理东西流量而产生的。服务网格是一个处理服务与服务之间通信的基础设施,负责在云原生应用的复杂的服务拓扑结构下进行可靠的请求传输。它是一组和应用服务部署在一起的轻量级的网络代理,对应用透明。

服务网格作为微服务架构中负责网络通信的基础设施,它能够处理网络通信中绝大多数的问题,服务网格通过在每个业务服务前增加一个服务代理,再让这个服务代理劫持流量并转发到业务服务来实现流量管理。因为服务代理能够劫持流量,所以它能够根据需要对流量进行各种处理,如根据请求头将请求分发到不同的服务版本。总结来说,服务网格有四大功能:

  1. 流量管理:这是它的核心,基础是它能够劫持流量。应用:动态路由,通过配置路由规则来动态确定要请求的服务,请求需要被路由到生产环境还是预发布环境,测试版本还是运行版本,仅针对登录用户还是全体用户等等,都可能通过配置路由规则来实现。
  2. 策略:为应用添加一些请求控制策略,如黑名单,白名单,限流等
  3. 安全:因为服务代理能够劫持流量,所以它可以对流量进行一系列的认证和授权操作,如为流量添加双向TLS等
  4. 可观察:请求中一定会包含很多有用的信息,这些信息可以通过服务网格进行收集并上报到对应的后台处理,然后就可以以各种可视化方式被展示出来,以便后台开发者全面监控和观察应用的运行状态。

服务网络对服务应用是透明的,所有流量管理都由服务代理来完成,服务应用代码一般不需要做修改,服务代理是一个单独的进程(通常以容器的方式部署在业务服务旁和服务应用的容器共享同一个网络环境。)服务代理会自动劫持流量并转发请求。


http://www.kler.cn/a/155128.html

相关文章:

  • react + ts定义接口类型写法
  • uniapp在app模式下组件传值
  • 基于Python的网上银行综合管理系统
  • Linux如何更优质调节系统性能
  • python魔术方法的学习
  • C/C++精品项目之图床共享云存储(3):网络缓冲区类和main
  • 使用Draw.io制作泳道图
  • CSS3 修改滚动条样式
  • ThreadLocal的理解和使用
  • IntelliJ IDEA 之初体验(上)
  • [LeetCode周赛复盘] 第 374 场周赛20231203
  • 图像生成MaaS服务
  • chatgpt prompt提示词
  • abapgit 安装及使用
  • Redis集合对象
  • 对某登录站点的JS前端逆向思路
  • Git中如何按日期进行checkout
  • React--引入第三方插件时,标签名是小写报错问题
  • 创意项目开源,文生图、排序/优选等...,持续开源更新!!
  • docker-速通
  • Django大回顾 -3 之响应对象、cbv和fbv、关于类中self是谁的问题、上传文件、模版
  • 引用计数 Rc 数据类型
  • 【Python百宝箱】分布式魔法:穿越分布式奇境的导航
  • 深度学习——第1章 深度学习的概念及神经网络的工作原理
  • LeetCode 1423. 可获得的最大点数:滑动窗口
  • 智加科技获全国首张重卡无人驾驶开放道路测试牌照