我来讲一下-Service Mesh.

前言:

        1、中文直翻译:Service Mesh叫服务网格,有一些讲课老师说什么把服务当成一个一个格子,一笔带过,没有经过深刻思考的讲诉,我真的bs.

一、我来讲一下

1、这里拆解分析一下,Service中的"Service"究竟是什么?
直接说结论这里的“Service”指的是 "Micro service"的"“Service” 就是常说的微服务的“Service”
 

2、“Mesh”指的是什么?还是直接说结论:
想象一下“当你有一个微服务可观测平台,在上帝(俯视)视角-可视化观察一万个微服务的时候是不是就是一个非常大的网格,并且网格中彼此连接在一起.

3、那么“Service Mesh.”就不是一个“名词”,更像是一个“象形词”需要有想象力才能理解。

二、再说一下“在基础架构中怎么理解Service Mesh.” 

        1、在没有“Service Mesh”之前业务时如何实现的网络功能的?

        1、在java语言的微服务架构中,有一个很经典的架构叫Spring,这门语言有很多好用的SpringCloud组件,比如阿里云的 “nacos”。

        2、在使用“SpringCloud组件”做开发之前,比如你后端有三个服务。A和B服务,其中B服务需要弹性扩展,那么A服务在除了业务逻辑代码以外还需要写网络功能的代码(来实现服务B的LB的功能),还要实现服务发现。

        3、在使用“SpringCloud组件”做开发之后,你的A服务和B服务会在启动时注册到你的"nacos"注册中心上,由他来管理网络功能,并且在把相应服务的路由信息同步给其他服务。

        4、此时A服务需要访问B服务,只需要在配置文件中写上一个变量,Service_B = "SpringCloud_Service_B",后面的这个值“"SpringCloud_Service_B"”,是“SpringCloud组件”__"nacos"提供给他。那么此时在开发程序时,网络功能就交给了第三方“SpringCloud”组件来管理网络功能。

        2、微服务框架好好的,为什么现在又要“Service Mesh”?

        1、因为之前的基础架构是虚拟化平台,虚拟化平台适合需要独立内核和较高安全性场景使用,比如“云桌面”。

        2、而对于现代应用程序,生产单位的需求是“今天的需求,明天就要上线”,“上线有问题,我希望立刻马上可以回退到正常版本”,“我还想我的程序能顶的住高并发!”,“我还希望我的微服务网络流量之间具备非常好的可观测性”,“我还希望我自己的HTTP程序不用自己管理配置和TLS证书”,很明显虚拟化平台要付出非常大的成本和代价才能勉强满足这些需求,但是容器平台天生就具备。

        3、选择了容器平台后确实解决了上述的问题,但是人的欲望是无穷的,既然基础架构就可以满足我的网络需求,那么为什么还要把“SpringCloud”部署在容器平台中呢?这不是浪费资源,又不那么云原生。

        4、然后你把“SpringCloud”的组件和程序代码中关于“SpringCloud”的注册部分代码的删除,使用k8s原生的服务注册机制,“环境变量注入方式”,这样确实实现了东西向微服务的网络打通,但是问题又来了。原生的k8s的kubeproxy(服务注册机制)是一个4层LB,他无法满足你额外的欲望比如:“我希望我A服务访问B服务的时候可以实现7层的流量可观测性”“我希望我A服务访问B服务的时候可以实现流量权重”,“我希望我A服务访问B服务的时候可以实现URL冲重定向”等等,那么k8s本身平台不满足,那咋整呢?

        5、没错,就引入了“Service Mesh”,即“envoy”边车,让你的所有服务的pod都加一个"envoy"边车网络容器,来劫持直接到你容器的流量,让“envoy”来实现你pod的网络功能,而"envoy"本身就是一个可以实现7层网络功能的容器。

        6、此时你的微服务互相通信看似是几个微服务间的通信,其实是几个“envoy”边车容器之间的通信,你打开可视化监控平台,查看7层的可观测性,假设你有1万个微服务,此时他们看起来就是“Service Mesh(服务网格)”。

        3、总结

        那么Service Mesh(服务网格)词语其实就解释的很清楚了,
        但是实际上Service Mesh(服务网格)就是基础架构来提供微服务之间的7层网络功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/9926.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

30.超市管理系统(基于springboot和Vue的Java项目)

目录 1.系统的受众说明 2.相关技术和开发环境 2.1 相关技术 2.1.1 Java语言 2.1.2 HTML、CSS、JavaScript 2.1.3 MySQL 2.1.4 Vue.js 2.1.5 SpringBoot 2.2 开发环境 3. 系统分析 3.1 可行性分析 3.1.1 经济可行性 3.1.2 技术可行性 3.1.3 运行可行性 3.2…

洛谷 P1434 [SHOI2002] 滑雪 完整题解

一、题目查看 P1434 [SHOI2002] 滑雪 - 洛谷 二、解题思路 本题需要使用记忆化搜索&#xff0c;把第x个点开始最多能走几步记录在dp[x]中&#xff0c;循环递归&#xff0c;记录&#xff0c;并找出最大的dp[i]。 三、题解 #include <bits/stdc.h> using namespace std;int…

分布式唯一ID生成(二): leaf

文章目录 本系列前言号段模式双buffer优化biz优化动态step源码走读 雪花算法怎么设置workerId解决时钟回拨源码走读 总结 本系列 漫谈分布式唯一ID分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf&#xff08;本文&#xff09;分布式唯一ID生成&#xff08;三&am…

Spring Boot 与 Vue 共筑电影评价卓越平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

Everything软件实现FTP功能

Windows的文件共享和ftp实在难用&#xff0c;这里介绍一种新的局域网内共享文件的方法 下载 Everything 选择想要共享的文件&#xff0c;选择包含到数据库&#xff0c;注意&#xff1a;要在对应的分卷设置&#xff0c;共享文件夹名称不要包含中文字符&#xff0c;因为Windows底…

CertiK创始人顾荣辉出席新加坡商业与慈善论坛,发表主旨演讲并主持专题讨论

2024年11月5日 —— 美国哥伦比亚大学教授、CertiK联合创始人、MAS国际技术顾问顾荣辉受邀参加2024年度新加坡商业与慈善论坛&#xff08;Business & Philanthropy Leadership Forum Singapore&#xff0c;简称B&P Forum&#xff09;&#xff0c;期间发表主旨演讲并主持…

oracle创建实例失败-因为网络原因

风起波谲 最近遇到一个case很有意思。 起因是在redhat6.5上&#xff0c;安装一个oracle 19c。这个问题到没有特别大。换glibc的包就装上去了。 但是dbca就失败了 有点紧张&#xff0c;不会是遇到了不可控依赖问题吧。遂去看了把日志 日志看了以后反而没那么紧张了&#xff0…

力扣题库——75.颜色分类

这道题采用三路快速排序&#xff0c;快速排序思路看这里快速排序。将数列分为三组&#xff1a;小于基准、等于基准、大于基准。和快排一样&#xff0c;对左右递归进行快速排序。 先将题目简化&#xff0c;如果只有数字0和1&#xff0c;扫描一遍数组&#xff0c;遇到数字1不用管…

Android中桌面小部件framework层使用到的设计模式

在Android中&#xff0c;桌面小部件&#xff08;App Widget&#xff09;的Framework层采用了多种设计模式&#xff0c;以实现模块化、可维护性和高效的交互。 以下是Android桌面小部件Framework层中常用的设计模式及其具体应用&#xff1a; 1. 观察者模式&#xff08;Observe…

解锁 AI 新境界:元素碰撞的神奇应用技巧全解析

前言 在当今科技飞速发展的时代&#xff0c;ChatGPT 作为一款强大的人工智能工具&#xff0c;为我们开启了全新的创意探索之门。当我们让 ChatGPT 去进行大量的元素碰撞时&#xff0c;相较于传统人力的联想方式&#xff0c;它能够凭借其强大的算法和海量的数据处理能力&#x…

操作系统-磁盘

文章目录 磁盘的结构一、磁盘的物理结构二、磁盘的逻辑结构 磁盘的调度算法磁盘时间算法先来先服务&#xff08;FCFS - First-Come, First-Served&#xff09;最短寻道时间优先&#xff08;SSTF - Shortest Seek Time First&#xff09;扫描算法&#xff08;SCAN&#xff0c;也…

C++类和对象 (下)

文章目录 前言一. 再探构造函数初始化列表特性总结练习 二. 类型转换2.1 隐式类型转换2.2 临时对象具有常性2.3 explicit关键字2.4 多参数类型转化 三. static成员概念特性练习 四. 友元概念特性 五. 内部类概念特性 六. 匿名对象概念特性 七. 对象拷贝时的编译器优化END 前言 …

玩的花,云产品也能拼团了!!!

说起拼单大家都不陌生&#xff0c;电商一贯的营销手段&#xff0c;不过确实可以给消费者省下一笔钱。双11到了&#xff0c;腾讯云产品也玩起了拼团&#xff0c;这明显是对开发人员和各企业的福利。 对于有云产品需求的个人或企业&#xff0c;这次绝对是难得的一次薅羊毛机会。…

深度学习-张量相关

一. 张量的创建 张量简介 张量是pytorch的基本数据结构 张量&#xff0c;英文为Tensor&#xff0c;是机器学习的基本构建模块&#xff0c;是以数字方式表示数据的形式。 例如&#xff0c;图像可以表示为形状为 [3, 224, 224] 的张量&#xff0c;这意味着 [colour_channels, h…

境内部署DIfy(上篇)

背景&#xff1a; 由于近2年大模型的火热催生出很多业务场景&#xff0c;这也迫使我们这些老一辈的程序搬运工去接触新事物&#xff0c;“工欲善其事必先利其器”&#xff0c;先从大模型应用开始摸索&#xff0c;网上大把工具&#xff0c;再三思考后决定先从Dify开始&#xff…

[CKS] 利用Trivy对image进行扫描

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于Trivy镜像安全扫描的题目。 What’s Trivy Trivy的官方仓库https://github.com/aquasecurity/trivy&#xff0c;Trivy是一个开源的容器镜像漏洞扫描工具。它通过分析容器镜像中的操作系统包和应用…

vue3入门知识(一)

vue3简介 性能的提升 打包大小减少41%初次渲染快55%&#xff0c;更新渲染快133%内存减少54% 源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking 新的特性 1. Composition API&#xff08;组合API&#xff09; setupref与reactivecomput…

数据结构和算法入门

复杂度 大O记法 计算机怎么判断程序性能&#xff1f; 我们都知道编程基本上是在和数据打交道&#xff0c;大多数程序基本都在处理获取数据、查询数据、操作数据、返回数据相关的逻辑。 因此出现了数据结构和算法&#xff0c;这两者出现本质为了解决如何能够更快、更省进行数…

【Linux第八课-进程间通信】管道、共享内存、消息队列、信号量、信号、可重入函数、volatile

目录 进程间通信为什么&#xff1f;是什么&#xff1f;怎么办&#xff1f;一般规律具体做法 匿名管道原理代码 命名管道原理代码 system V共享内存消息队列信号量信号量的接口 信号概念为什么&#xff1f;怎么办&#xff1f;准备信号的产生信号的保存概念三张表匹配的操作和系统…

串的模式匹配

子串的定位操作通常称为串的模式匹配&#xff0c;它求的是子串(常称模式串)在主串中的位置。 子串——主串的一部分&#xff0c;一定存在 模式串——不一定能在主串中找到 朴素模式匹配 将主串中所有长度为m的子串&#xff08;共有n-m1个&#xff09;依次与模式串对比&…