service mesh 架构_MESHOR

service mesh 架构_MESHOR什么是servicemesh根据LinkerdCEOWilliamMorgan定义,ServiceMesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,ServiceMesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。基本结构图如下:在实践中,ServiceMesh基本来说是一…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

什么是service mesh

       根据Linkerd CEO William Morgan定义,Service Mesh是用于处理服务间通信的基础设施层,用于在云原生应用复杂的服务拓扑中实现可靠的请求传递。在实践中,Service Mesh通常是一组与应用一起部署,但对应用透明的轻量级网络代理。

基本结构图如下:

service mesh 架构_MESHOR

        在实践中,Service Mesh基本来说是一组轻量级的服务代理和应用逻辑的服务在一起,同生共死,并且对于应用服务是透明的。具体的部署方式类似下面这样。

service mesh 架构_MESHOR

       如何理解sidecar呢?可以参考下面的图,边上的人可以专注的做自己的事情,而sidercar负责处理开车相关的事情,实现业务和通用功能的分离。

service mesh 架构_MESHOR

为什么要这么设计呢?是因为在当前的微服务发展中,有几个问题逐渐暴露出来:

  1. 业务服务的代码和微服务的SDK强耦合在一起导致业务升级和微服务SDK的升级强绑定在了一起。
  2. 对于异构的系统,需要开发多语言的SDK,维护成本很高。

Service Mesh如何解决上述问题呢?Service Mesh会抽离微服务中的通用功能,比如服务注册发现,负载均衡,熔断降级,限流扩容,监控等功能,把这些功能放到sidercar中,通过代理的方式于业务服务进行通信,从而解决上面的问题。

istlo介绍

Istio是Google、IBM和Lyft联合开源的微服务Service Mesh框架,旨在解决大量微服务的发现、连接、管理、监控以及安全等问题。

Istio是对Service Mesh的产品化实践,帮助微服务实现了分层解耦,此时的sidecar具有一下功能:

(1)服务发现(discovery)

(2)负载均衡(load balancing)

(3)故障恢复(failure recovery)

(4)服务度量(metrics)

(5)服务监控(monitoring)

(6)A/B测试(A/B testing)

(7)灰度发布(canary rollouts)

(8)限流限速(rate limiting)

(9)访问控制(access control)

(10)身份认证(end-to-end authentication)

架构图如下:

service mesh 架构_MESHOR

逻辑上Istio分为数据平面(data pane)和控制平面(control pane):

  • 数据平面用于有一些智能代理组成,微服务之间的网络通信,
  • 控制平面负责对智能代理进行管理和配置。

主要由以下组件构成

数据平面,有一个核心组件:

Envoy (proxy)

Envoy的核心职责是高效转发,更具体的,它具备这样一些能力:

(1)服务发现

(2)负载均衡

(3)安全传输

(4)多协议支持,例如HTTP/2,gRPC

(5)断路器(Circuit breakers)

(6)健康检查

(7)百分比分流路由

(8)故障注入(Fault injection)

(9)系统度量

控制平面,有四个核心组件:

Mixer

Mixer的一些核心能力是:

(1)跨平台,作为其他组件的adapter,实现Istio跨平台的能力;

(2)和Envoy通讯,实时各种策略

(3)和Envoy通讯,收集各种数据

Mixer的设计核心在于“插件化”,这种模型使得Istio能够适配各种复杂的主机环境,以及后端基础设施。

Pilot

Pilot作为非常重要的控制平面组件,其核心能力是:

(1)为Envoy提供服务发现能力;

(2)为Envoy提供各种智能路由管理能力,例如A/B测试,灰度发布;

(3)为Envoy提供各种弹性管理能力,例如超时,重试,断路策略;

Pilot的设计核心在于“标准化”,它会将各种流控的控制命令转化为Envoy能够识别的配置,并在运行时,将这些指令扩散到所有的Envoy。Pilot将这些能力抽象成通用配置的好处是,所有符合这种标准的Envoy都能够接入到Pilot来。

潜台词是,任何第三方可以实现自己的proxy,只要符合相关的API标准,都可以和Pilot集成。

Citadel

Citadel组件,它提供终端用户身份认证,以及服务到服务的访问控制。总之,这是一个和安全相关的组件。

Galley

Gally组件,它是一个配置获取、校验、处理、分发的组件,它的设计核心在于“解耦”,它将“从底层平台(例如:K8S)获取用户配置”与Istio解耦开来。

参考资料: https://blog.csdn.net/z50L2O08e2u4afToR9A/article/details/89597120

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215888.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器人手眼标定Ax=xB(eye to hand和eye in hand)及平面九点法标定[通俗易懂]

    机器人手眼标定Ax=xB(eye to hand和eye in hand)及平面九点法标定[通俗易懂]一、背景Calibration是机器人开发者永远的痛。虽然说方法说起来几十年前就有,但每一个要用摄像头的人都还是要经过一番痛苦的踩坑,没有轻轻松松拿来就效果好的包。机器人视觉应用中,手眼标定是一个非常基础且关键的问题。简单来说手眼标定的目的就是获取机器人坐标系和相机坐标系的关系,最后将视觉识别的结果转移到机器人坐标系下。手眼标定行业内分为两种形式,根据相机固定的地方不同,如果相机和机器…

    2022年4月27日
  • 关于 sso 博客大巴的神仙的一点思路

    关于 sso 博客大巴的神仙的一点思路
    聊天中的一些片段。。。可以记录参考下
     
    1每个应用独立维护自己的session
     
    2用户中心是一个特殊的应用,负责用户登录验证某个需要登录的应用发现没有登录状态就跳到用户中心用户中心判断有没在自己这里登录过,登录过就返回用户信息,没登陆过就先登录,然后记自己的session别的应用收到以后根据用户信息记自己的session之后只要自己的session还在,就不关用户中心的事了

    2022年7月12日
  • centos7如何关闭linux防火墙(centos关闭防火墙)

    在某些场景中我们会希望能够关闭防火墙,比如ftp连不上,又不想在iptable中添加端口配置,那么我直接就把防火墙给关了。下面是學習啦小編收集整理的centos如何关闭防火墙,希望對大家有幫助~~centos关闭防火墙工具/原料操作系统:centos6.5方法/步骤查看防火墙状态:命令:/etc/init.d/iptablesstatus如果是开着显示内容类是截图临时关闭防火墙:命令:…

    2022年4月11日
  • python 数组转换为字典_char转换为string

    python 数组转换为字典_char转换为string先看下join函数:语法为:str.join(sequence)sequence–要连接的元素序列实例一:连接字符串str1=’-‘seq=(“a”,”b”,”c”)printstr1.join(seq)实例二:连接数组(数组元素为字符串)str2=’*’seq2=[“a”,”b”,”c”]printstr2.join(seq2)

    2022年10月9日
  • 艺赛旗胡立军:“机器人工厂”,让RPA风口再起

    艺赛旗胡立军:“机器人工厂”,让RPA风口再起艺赛旗胡立军:“机器人工厂”,让RPA风口再起

    2022年4月22日
  • idea2021.5激活码 mac【在线注册码/序列号/破解码】

    idea2021.5激活码 mac【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号