当前位置:网站首页>阿里云微服务(四) Service Mesh综述以及实例Istio
阿里云微服务(四) Service Mesh综述以及实例Istio
2022-07-06 09:19:00 【几何学家】
要提到Service Mesh就不得不提到微服务,根据维基百科的定义
微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building
Blocks) 为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关
(Language-Independent/Language agnostic) 的 API 集相互通信
随着谷歌三架马车BIGTABLE,Mapreduce,GFS的出现,敲开了分布式的大门,熔断策略、负载均衡、服务发现等的出现,服务根据业务需要一部分通信语义,为了避免每个服务都自己搞一套通信语义,出现了微服务框架,比如说Spring Cloud等框架,他们实现了分布式系统所需要的语义功能,比如服务发现,负载均衡等,一定程度上屏蔽了通信细节,使得开发人员用较少的代码就能实现整个功能无需考虑通信的一些问题。
但是后来,人们又发现微服务框架也并非万能,它主要有下列问题:
1.开发者需要花大量的时间去学习微服务框架的一些细节,因为如果出了问题,不了解框架是很难去排查解决问题的
2.使用微服务的框架需要使用特定的语言,这与微服务最初的特性----和语言无关相违背
为了解决这个问题,第一代Service Mesh应运而生
它将分布式系统的通信抽象为单独的一层,由他来实现负载均衡、服务发现、认证授权、监控追踪、流量控制等分布式系统所需要的功能,作为一个和服务对等的代理服务,和服务部署在一起,由其通过代理之间的通信完成服务之间的请求。
如图,蓝色的部分是服务网格,如果仅仅看蓝色部分的话,就很容易理解为什么叫“Mesh”了吧~
后来,为了统一管理,人们又衍生出了第二代Service Mesh,衍变出了集中式的控制面板,所有的单机组件通过和控制面板进行网络拓扑策略的更新和数据的汇报,一个非常经典的例子就是Istio
Istio 由两个部分组成:控制平面和数据平面。
数据平面是业务之间的通信平面。如果没有一个服务网格,网络就无法理解正在发送的流量,也无法根据它是哪种类型的流量,或者它从谁那里来,到谁那里去做出任何决定。
服务网格使用代理拦截所有的网络流量,允许根据您设置的配置提供广泛的应用程序感知功能。
代理与您在集群中启动的每个服务一起部署,或者与运行在虚拟机上的服务一起运行。
控制平面获取您所需的配置和服务视图,并动态地对代理服务器进行编程,随着规则或环境的变化更新它们。
使用Istio之前
使用Istio之后:
Service Mesh的优缺点:
优点:
1.屏蔽分布式的通信复杂性
2.屏蔽语言
3.对应用层透明,无需关心
缺点:
1.一定程度降低了通信性能
2.服务的整体稳定性依赖Service Mesh
边栏推荐
- The earth revolves around the sun
- The service robots that have been hyped by capital and the Winter Olympics are not just a flash in the pan
- 使用rtknavi进行RT-PPP测试
- NovAtel 板卡OEM617D配置步骤记录
- Novatel board oem617d configuration step record
- 341. Flatten nested list iterator
- 3月15号 Go 1.18 正式版发布 了解最新特色以及使用方法
- 2022国赛Re1 baby_tree
- Unity3d, Alibaba cloud server, platform configuration
- Pride-pppar source code analysis
猜你喜欢
[algorithm] sword finger offer2 golang interview question 12: the sum of the left and right sub arrays is equal
《软件测试》习题答案:第一章
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和
[算法] 剑指offer2 golang 面试题5:单词长度的最大乘积
Mixed use of fairygui button dynamics
Fabrication of fairygui simple Backpack
Role movement in the first person perspective
FGUI工程打包发布&导入Unity&将UI显示出来的方式
[untitled]
Fundamentals of UD decomposition of KF UD decomposition [1]
随机推荐
FairyGUI条子家族(滚动条,滑动条,进度条)
平衡二叉树详解 通俗易懂
Implementation of Excel import and export functions
All in one 1405: sum and product of prime numbers
[algorithm] sword finger offer2 golang interview question 9: subarray with product less than k
[算法] 剑指offer2 golang 面试题13:二维子矩阵的数字之和
[算法] 剑指offer2 golang 面试题1:整数除法
《软件测试》习题答案:第一章
Rt-ppp test using rtknavi
Error: sorting and subscript out of bounds
It has been solved by personal practice: MySQL row size too large (> 8126) Changing some columns to TEXT or BLOB or using ROW_ FORMAT
服务未正常关闭导致端口被占用
FairyGUI复选框与进度条的组合使用
阿里云一面:并发场景下的底层细节 - 伪共享问题
[算法] 剑指offer2 golang 面试题6:排序数组中的两个数字之和
【GNSS数据处理】赫尔默特(helmert)方差分量估计解析及代码实现
Prove the time complexity of heap sorting
VLSM variable length subnet mask partition tips
The port is occupied because the service is not shut down normally
FairyGUI循环列表