微服务架构Istio学习笔记1——发展历史

转自《从分布式到微服务,深挖Service Mesh》以下是重点记录

发展历史

  • 原始阶段,服务直连
  • 随着技术发展,计算和网络异步的问题显现,网络协议栈从服务中单独分离出来

流量控制

  • 服务之间可能无法实时同步,存在阻塞等问题
  • 随着TCP/IP的出现,流量控制被加入到网络协议栈中,并与服务分离开
  • 流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过将阻塞信号发送回源地址实现的。流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行。

TCP/IP协议面临的问题

  • 计算资源的快速提供
  • 基本的监控
  • 快速部署
  • 易于扩展的存储
  • 可轻松访问边缘
  • 认证与授权
  • 标准化的RPC

服务发现

  • 服务发现是在满足给定查询条件的情况下自动查找服务实例的过程
  • 通过调用一些服务发现进程,返回一个满足条件的服务列表
  • 通常使用DNS、负载均衡器和一些端口号的约定(例如,所有服务将HTTP服务器绑定到8080端口)来实现
  • 但在分布式系统中,服务发现变得复杂

断路器

  • 断路器将一个受保护的函数调用包含在用于监视故障的断路器对象中
  • 一旦故障达到一定阈值,则断路器跳闸,并且对断路器的所有后续调用都将返回错误,并完全不接受对受保护函数的调用
  • 通常,如果断路器发生跳闸,你还需要某种监控警报
  • 但在分布式系统中,情况变得复杂,一个组件中的一个故障可能会在许多客户端和客户端的客户端上产生连锁反应,从而触发数千个电路同时跳闸

新的逻辑

  • 使用高级协议(如HTTP)编写非常复杂的应用程序和服务,无需考虑TCP是如何控制网络上的数据包的
  • 解决方案是通过一组代理来实现。这个的想法是,服务不会直接连接到它的下游,而是让所有的流量都将通过一个小小的软件来透明地添加所需功能
  • 在这个领域第一个有记载的进步使用了边三轮(sidecars)这个概念。“边三轮”是一个辅助进程,它与主应用程序一起运行,并为其提供额外的功能
    Sidecar

Service mesh

  • Service mesh架构中为每个服务都配备了一个Sider car,其部署架构图如下
    在这里插入图片描述

  • service mesh是用于处理服务到服务通信的专用基础设施层

  • 它负责通过复杂的服务拓扑来可靠地传递请求

  • service mesh常被实现为与应用程序代码一起部署的轻量级网络代理矩阵,并且它不会被应用程序所感知

  • service mesh的整体架构如下
    在这里插入图片描述

  • 实际的服务流量仍然直接从代理流向代理,但是控制面知道每个代理实例

  • 控制面使得代理能够实现诸如访问控制和度量收集这样的功能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值