大厂面试题-什么是服务网格?

news2025/2/24 18:07:32

概述

务网格这个概念出来很久了,从2017年被提出来,到2018年正式爆发,很多云厂商和互联网企业都在纷纷向服务网格靠拢。像蚂蚁集团、美团、百度、网易等一线互联公司,都有服务网格的落地应用。

服务网格是微服务架构的更进一步升级,它的核心目的是实现网络通信与业务逻辑的分离,使得开发人员更加专注在业务的实现上。

问题解答

服务网格,也就是Service Mesh,它是专门用来处理服务通讯的基础设施层。它的主要功能是处理服务之间的通信,并且负责实现请求的可靠性传递。

Service Mesh,我们通把他称为第三代微服务架构,既然是第三代,那么意味着他是在原来的微服务架构下做的升级。

为了更好的说明Service Mesh,那我就不得不说一下微服务架构部分的东西。

首先,当我们把一个电商系统以微服务化架构进行拆分后,会的到这样的一个架构(如图),其中包括Webserverpaymentinventory等等。

(如图)这些微服务应用,会被部署到Docker容器、或者Kubernetes集群。由于每个服务的业务逻辑是独立的,比如payment会实现支付的业务逻辑、order实现订单的处理、Webserver实现客户端请求的响应等。

(如图)所以,服务之间必须要相互通信,才能实现功能的完整性。比如用户把一个品加入物车,请求会进入到Webserver,然后转发到shopping cart进行处理,并到数据库。

而在这个过程中,每个服务之间必须要知道对方的通信地址,并且当有新的节点加入进来的时候,还需要对这些通信地址进行动态维护。所以,在第一代微服务架构中,每个微服务除了要实现业务逻辑以外,还需要解决上下游寻址、通讯、以及容错等问题。 (如图)于是在第二代微服务架构下,引入了服务注册中心来实现服务之间的寻址,并且服务之间的容错机制、负载均衡也逐步形成了独立的服务框架,比如主流的Spring Cloud、或者 Spring Cloud Alibaba

在第二代微服务架构中,负责业务开发的小伙伴不仅仅需要关注业务逻辑,还需要花大量精力去处理微服务中的一些基础性配置工作,虽然Spring Cloud已经尽可能去完成了这些情,但对于开发人员来说,学习Spring Cloud,以及针对Spring Cloud的配置和维护,仍然存在较大的挑战。另外呢,也增加了整个微服务的复杂性。

实际上,“微服务中所有的这些服务注册、容错、重试、安全等工作,都是为了保证服务之间通信的可靠性”。

于是就有了第三代微服务架构,Service Mesh。

(如图)原本模块化到微服务框架里的微服务基础能力,被进一步的从一个SDK中演进成了一个独立的代理进程-SideCar

SideCar的主要职责就是负责各个微服务之间的通信,承载了原本第二代微服务架构中的服务发现、调用容错、服务治理等功能。使得微服务基础能力和业务逻辑迭代彻底解

之所以我们称Service Mesh为服务网格,是因为在大规模微服务架构中,每个服务的通信都是由SideCar来代理的,各个务之间的通信拓扑图,看起来就像一个网格形状 (如图)

Istio是目前主流的Service Mesh开源框架。

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

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

相关文章

借助AxProtector CTP,软件更能坚守抗盗版和逆向工程阵地

威步的软件保护机制采用了先进的混淆技术。 最新的编译时保护技术利用LLVM编译器框架,以实现高效的保护目标。 AxProtector CTP确保应用程序的安全性,同时符合特定平台的指导原则,无需运行时代码修改。 最近的CodeMeter保护套件更新已支持…

LeetCode----42. 接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝…

vue-安装Vue开发者工具

极简插件:下载->开发者模式->拖曳安装->插件详情允许访问文件 网址:https://chrome.zzzmh.cn/index 搜索Vue Devtools 下载下来的安装包先解压 然后点击chrome浏览器的右上角三个点的按钮在里面找到扩展程序这个选项,然后点进去管理…

智力测试情商测试小程序源码/带流量主提升智力微信小程序源码

智力测试情商测试小程序源码,这是一个考验智力,心理上面的一个测试游戏,支持多种测试方法。 比如有: 智商测试丨情商测试 | 性格测试丨爱情测试 | 抑郁症测试丨焦虑症测试 | 心理压力测试丨生活满意度测试,通过不同的测试&#xf…

环境变量(图文详解)

Linux中的环境变量(图文详解) 1. 基本概念2. 常见环境变量PATH : 指定命令的搜索路径HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)SHELL : 当前Shell,它的值通常是/bin/bash 3. 查看环境变量方法4. 测试PATH5. HOME6. 和环境变量…

每日一练 | 华为认证真题练习Day124

1、OSPFv3使用哪个区域号标识骨干区域? A. 0 B. 3 C. 1 D. 2 2、某路由器OSPFv3邻接关系如下,则本路由器是ABR。 A. 对 B. 错 3、IPv6地址中不包括下面哪种类型的地址? A. 任播地址 B. 广播地址 C. 组播地址 D. 单播地址 4、如果一个…

中国人民大学与加拿大女王大学金融硕士项目——在繁忙的工作之余,坚持自我增值

’在这个快节奏的时代,我们常常被繁忙的工作和生活所牵绊,很难找到时间和精力去实现自己的梦想和追求。然而,我们不能让这些琐事成为我们前进道路上的障碍,应该在繁忙的工作之余,坚持自我增值。作为金融行业的专业人士…

linux下的程序环境和预处理(gcc演示)

1. 程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。 2. 详解编译链接 2.1 翻译环境 组成一个程序的…

【深度学习】pytorch——实现CIFAR-10数据集的分类

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 往期文章: 【深度学习】pytorch——快速入门 CIFAR-10分类 CIFAR-10简介CIFAR-10数据集分类实现步骤一、数据加载及预处理实现数据加载及预处理归一化的理解访问数据集Dataset对象Dataloader对象 二、…

GWAS软件:GEMMA的安装和使用教程

GCTA和GEMMA是GWAS分析中应用最广泛的两款软件,GCTA可以在​Windows电脑下运行,而GEMMA软件只有Linux和Mac系统,这里介绍一下如何在Linux系统中安装GEMMA软件。 ​ 1. GEMMA名字来源 GEMMA名称来源: G: Genome-wid…

万字图文详细指导一步一步训练模型实现换-·脸,基于DeepFaceLab最新的DeepFakes实现视频换-·脸和直播换-·脸(全套资料免费下载)

万字图文详细指导一步一步训练模型实现换-脸,基于DeepFaceLab最新的DeepFakes实现视频换-脸和直播换-脸(全套资料免费下载)。 DeepFaceLab3:软硬件以及系统要求: DeepFaceLab3:软硬件以及系统要求By tony DeepFaceLab 0 Comments 5929,898 views。这段时间DeepFaceLab也…

HackTheBox-Starting Point--Tier 1---Tactics

文章目录 一 题目二 实验过程三 Psexec工具使用 一 题目 Tags Network、Protocols、SMB、Reconnaissance、Misconfiguration译文:网络、协议、中小企业、侦察、配置错误Connect To attack the target machine, you must be on the same network.Connect to the S…

表格没值显示 —

<el-table-columnprop"turnoverType"label"流水方式"align"center"><template slot-scope"scope"><!-- <span v-if"scope.row.turnoverType 1">全佣</span><span v-if"scope.row.turno…

Python---字符串输入和输出---input()、格式化输出:%,f形式,format形式

字符串输入: 在Python代码中&#xff0c;我们可以使用input()方法来接收用户的输入信息。记住&#xff1a;在Python中&#xff0c;input()方法返回的结果是一个字符串类型的数据。 如果之后使用输入的数据&#xff0c;一定要记得利用数据类型转换。 相关链接&#xff1a;Pyt…

mysql之基础语句

数据库的列类型 int&#xff1a;整型 用于定义整数类型的数据 float&#xff1a;单精度浮点4字节32位 准确表示到小数点后六位 double&#xff1a;双精度浮点8字节64位 char&#xff1a;固定长度的字符类 用于定义字符类型数据&…

Git 标签(Tag)实战:打标签和删除标签的步骤指南

目录 使用 Git 打本地和远程标签&#xff08;Tag&#xff09;删除本地和远程 Git 标签&#xff08;Tag&#xff09;开源项目标签&#xff08;Tag&#xff09;实战打标签删除标签 使用 Git 打本地和远程标签&#xff08;Tag&#xff09; 打本地标签&#xff1a; 首先&#xff0c…

重生奇迹MU天空之城简介

天空之城&#xff0c;一个极其美丽的名字&#xff0c;重生奇迹MU中的天空之城是一处高级游戏地图&#xff0c;里面的场景让人记忆犹新&#xff0c;接下来就一起看看吧 超高的等级限制 沙漠其实也有等级限制&#xff0c;只是那里稍微小一些&#xff0c;而且在沙漠地图中&#…

【2021研电赛】装载机物料智能识别系统

本作品介绍参与极术社区的有奖征集|分享研电赛作品扩大影响力&#xff0c;更有重磅电子产品免费领取! 团队介绍 参赛单位&#xff1a;Guangxi University of Science and Technology 参赛队伍&#xff1a;Sunshine 参赛队员&#xff1a;Taylor&#xff0c;Anais&#xff0c;S…

03-对象

对象 对象1.对象的创建字面量模式构造函数模式 2.对象的访问3.新增删除对象中的属性4.Object显示类型转换(强制类型转换)ECMAScript中可用的3种强制类型转换如下&#xff1a;Boolean(value)String(value)Number(value)Object类型到Boolean类型Object类型转String类型转换规则&a…

[Linux 基础] Linux使用git上传gitee三板斧

文章目录 1、使用git1.1 安装git1.2 在Gitee上创建项目1.2.1 使用Gitee创建项目1.2.2 上传本地代码到远端仓库 1.3 git上传三板斧1.3.1 三板斧第一招&#xff1a;git add1.3.2 三板斧第二招&#xff1a;git commit1.3.3 三板斧第三招&#xff1a;git push 1、使用git 1.1 安装…