网页设计 网站,如何搭建自己的小程序,wordpress标签链接分类目录,商品详情页模板什么是Service Mesh
作为Service Mesh技术探索和实践的先行者#xff0c;全球第一个真正的Service Mesh项目Linkerd负责人、Buoyant公司创始人兼CEO William Morgan第一次完整地阐述了Service Mesh。按照William Morgan的定义#xff0c;Service Mesh是一个致力于解决服务间…什么是Service Mesh
作为Service Mesh技术探索和实践的先行者全球第一个真正的Service Mesh项目Linkerd负责人、Buoyant公司创始人兼CEO William Morgan第一次完整地阐述了Service Mesh。按照William Morgan的定义Service Mesh是一个致力于解决服务间通信的基础设施层其负责在现代云原生应用的复杂服务拓扑下实现请求的可靠传递在实践中Service Mesh通常实现为一组轻量级网络代理这些代理与应用程序部署在一起并且对应用程序透明。
从上述Service Mesh的定义看基础设施层是Service Mesh的定位致力于解决本书第1章提出的微服务基础设施标准化、配置化、服务化和产品化问题服务间通信是Service Mesh技术面对的问题域对微服务屏蔽通信的复杂度解决微服务的通信治理问题请求的可靠传递是Service Mesh的目标轻量级网络代理是Service Mesh的部署方式对应用程序透明是Service Mesh的亮点和特色Service Mesh接入对业务无侵入可以非常方便地获取Service Mesh带来的便捷性算是Service Mesh的一大优势。
综合来看Service Mesh主要解决用户如下3个维度的痛点需求。
完善的微服务基础设施
Service Mesh通过将微服务通信下沉到基础设施层屏蔽了微服务处理各种通信问题的复杂度可以看成是微服务之间的抽象协议层抽象层面可以看成是TCP/IP协议栈的一部分。对于微服务的开发者来说比如当前使用HTTP或者Thrift进行RPC通信时你不需要关注TCP/IP这一层的具体实现有了Service Mesh之后微服务也不再需要关注RPC通信包含服务发现、负载均衡、流量调度、限流降级、监控统计等的一切细节真正像本地调用一样使用微服务通信相关的一切工作直接交给Service Mesh。
因此对于一些需要通过微服务改造提升业务敏捷性但没有相应技术能力的中小团队来说可以借助Service Mesh提供的完善微服务基础设施加速微服务的落地。
语言无关的通信和链路治理
功能上Service Mesh并没有提供任何新的特性和能力Service Mesh提供的所有通信和服务治理能力在Service Mesh之前的技术中均能找到比如Spring Cloud就实现完善的微服务RPC通信和服务治理支持。Service Mesh改变的是通信和服务治理能力提供的方式通过将这些能力实现从各语言业务实现中解耦下沉到基础设施层面以一种更加通用和标准化的方式提供屏蔽不同语言、不同平台的差异性这样不仅有利于通信和服务治理能力的迭代和创新业务使用的时候也会更加方便。
Service Mesh避免了多语言服务治理上的重复建设通过Service Mesh语言无关的通信和服务治理能力助力多语言技术栈的效率提升。
通信和服务治理的标准化
微服务治理层面Service Mesh是标准化、体系化、无侵入的分布式服务治理平台。标准化方面Sidecar成为所有微服务流量通信的约束标准同时Service Mesh的数据平面和控制平面也通过标准协议进行交互。体系化方面从全局考虑提供多维度立体的微服务可观测能力Metric、Trace、Logging并且提供体系化的服务治理能力比如限流、熔断、安全、灰度等最为重要的是Service Mesh通过透明无侵入的方式提供全面的服务治理能力对微服务本身不会带来直接影响。
通过标准化带来一致的服务治理体验减少多业务之间由于服务治理标准不一致带来的沟通和转换成本提升全局服务治理的效率。
Service Mesh的基本模式
根据Service Mesh的发展历程和使用方式我们可以把Service Mesh划分为两个模式。
Sidecar模式
在Service Mesh发展早期Service Mesh以Sidecar的形态存在。Sidecar模式下网络代理服务在微服务旁边为微服务提供通信和链路治理功能。因此数据平面代理服务也经常被简称为Sidecar。
此时只有数据平面的网络代理服务没有控制平面和外部基础设施服务的交互直接在网络代理服务中进行。
Sidecar模式可以看作是第一代Service Mesh代表有早期的Linkerd和Envoy。
第一代Service Mesh通过采用Sidecar模式通过将通信和通信链路治理功能从微服务中剥离出来实现了通信基础设施的下沉和服务化这里也体现了架构解耦的思想通过解耦减少了微服务的负担。
第二代Service Mesh模式
Sidecar模式的Service Mesh有一个突出的问题将通信和通信链路治理的所有功能都放到这个代理服务中导致数据平面代理很重并且由于承载了太多的特性和功能使得数据平面代理的更新和修改特别频繁频繁的更新和升级会导致代理服务出问题的概率增大影响代理服务的稳定性。同时Service Mesh模式下数据平面代理承载了微服务通信的全部流量对稳定性要求极高这个服务的任何故障都会对整个系统的稳定性产生很大的影响。为了解决上述频繁升级和稳定性之间的矛盾将策略和配置决策逻辑从代理服务中脱离出来形成了独立的控制平面这就是第二代Service Mesh。
第二代Service Mesh最重要的标志就是控制平面和数据平面分离。数据平面和控制平面并不是新的概念路由器/交换机等数据通信产品架构上就有运行于专门处理器上的控制平面和多个独立运行、用于路由或交换功能的数据平面。SDNSoftware Defined Network软件定义网络将数据平面和控制平面分离控制平面具有可编程性使得网络更加智能、灵活和易扩展激发了网络技术的又一次革命。
第二代Service Mesh借鉴了SDN的思路基于控制平面和数据平面分离思想有了完善的控制平面①所有的代理服务都由控制平面掌控因为控制平面可以控制整个系统所以提供了强大的控制能力和策略能力②将具体的控制逻辑从数据平面移除简化了数据平面的设计数据平面不需要和外部系统进行交互数据平面完全聚焦在变更频率很低的流量路由和转发逻辑上提升了数据平面的稳定性。
Service Mesh架构
第二代Service Mesh的基本架构上分为数据平面和控制平面两个部分大致如下图所示。 数据平面
数据平面负责代理微服务之间的通信具体包含RPC通信、服务发现、负载均衡、降级熔断、限流容错等数据平面可以认为是将Spring Cloud、Dubbo等语言相关的微服务框架中通信和服务治理能力独立出来的一个语言无关的进程并且更注重通用性和扩展性。在Service Mesh中不再将数据平面代理视为一个个孤立的组件而是将这些代理连接在一起形成一个全局的分布式网络。
控制平面
控制平面负责对数据平面进行管理定义服务发现、路由、流量控制、遥测统计等策略这些策略可以是全局的也可以通过配置某个数据平面节点单独指定。控制平面通过一定的机制将策略下发到各个数据平面节点数据平面节点在通信时会使用这些策略。
总结
谈到面试其实说白了就是刷题刷题刷题天天作死的刷。。。。。
为了准备这个“金三银四”的春招狂刷一个月的题狂补超多的漏洞知识像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
并且我也将自己刷的题全部整理成了PDF或者Word文档含详细答案解析有需要的朋友可以戳这里即可免费领取 66个Java面试知识点
架构专题MySQLJavaRedis线程并发设计模式NginxLinux框架微服务等大厂面试题详解百度阿里腾讯华为迅雷网易中兴北京中软等 算法刷题PDF
华为迅雷网易中兴北京中软等**
[外链图片转存中…(img-beS1OrgA-1624341453993)]
算法刷题PDF