持续总结中!2024年面试必问 20 道分布式、微服务面试题(七)
上一篇地址:持续总结中!2024年面试必问 20 道分布式、微服务面试题(六)-CSDN博客
十三、请解释什么是服务网格(Service Mesh)?
服务网格(Service Mesh)是一种用于处理服务间通信的基础设施层。它提供了一种将服务间通信控制和安全性从业务逻辑中解耦出来的方法,使得微服务架构中的服务能够更加专注于它们的核心功能。
服务网格的关键概念:
-
微服务间通信:
- 服务网格专门处理微服务之间的网络通信,包括请求的路由、负载均衡、故障恢复等。
-
控制平面(Control Plane):
- 控制平面负责配置和管理服务网格的行为,如服务发现、路由规则、安全策略等。
-
数据平面(Data Plane):
- 数据平面由部署在每个服务实例旁边的代理(通常是Sidecar模式)组成,负责实际的网络流量处理。
-
Sidecar模式:
- 服务网格中的代理通常以Sidecar模式部署,与服务实例运行在同一网络命名空间内,但作为独立的进程或容器。
-
流量管理:
- 服务网格提供了流量管理功能,如重试、超时、断路器等。
-
服务发现:
- 服务网格包括服务发现机制,允许服务实例相互识别和通信。
-
安全:
- 服务网格实现了服务间的安全通信,包括加密、认证和授权。
-
可观察性:
- 服务网格提供了监控和日志记录功能,帮助开发者和运维人员了解服务间的通信情况。
服务网格的工作原理:
-
服务实例注册:
- 每个服务实例在启动时向控制平面注册自己,控制平面维护一个服务注册表。
-
流量拦截:
- Sidecar代理拦截服务实例的所有出站和入站流量,然后根据控制平面的配置规则处理这些流量。
-
服务发现和负载均衡:
- 代理使用控制平面提供的信息来发现服务,并实现负载均衡。
-
安全通信:
- 代理负责在服务间建立安全的通信通道,如使用mTLS(双向TLS)进行加密。
-
流量控制:
- 代理根据控制平面的策略执行流量控制,如重试、超时、断路等。
-
监控和日志:
- 代理收集服务间的通信数据,并将其发送到监控和日志系统。
常见的服务网格技术:
-
Istio:
- 由Google、IBM和Lyft共同开发的开源服务网格,提供了流量管理、安全、可观察性等功能。
-
Linkerd:
- CNCF(Cloud Native Computing Foundation)的孵化项目,是一个轻量级、安全且易于使用的服务网格。
-
Consul:
- HashiCorp开发的服务网格,提供了服务发现、配置和安全通信。
-
AWS App Mesh:
- 亚马逊云服务提供的服务网格,用于微服务架构的应用程序。
-
Kuma:
- 开源的服务网格,提供了灵活的配置和多运行时支持。
服务网格为微服务架构带来了许多好处,包括简化的服务间通信、增强的安全性、改进的可观察性以及更好的流量控制。然而,它也引入了额外的复杂性,需要对控制平面和数据平面进行适当的配置和管理。
十四、什么是容器化,它在微服务中扮演什么角色?
容器化是一种轻量级、可移植的、自给自足的软件打包技术,它允许开发者将应用及其依赖项打包到一个隔离的容器中。容器与底层基础设施和运行环境无关,可以在任何支持容器技术的平台上运行,从而实现应用的快速部署、扩展和管理。
容器化的关键概念:
-
容器(Container):
- 容器是一个轻量级、可执行的软件包,包含应用的所有依赖项,但不包含操作系统。
-
镜像(Image):
- 容器镜像是一个只读模板,包含了运行容器所需的所有内容:代码、运行时、库、环境变量和配置文件。
-
容器引擎(Container Engine):
- 容器引擎是一个软件,负责运行容器、构建容器镜像和管理容器的生命周期。
-
容器编排(Container Orchestration):
- 容器编排工具帮助管理大规模容器部署,提供服务发现、负载均衡、扩展和自我修复等功能。
-
隔离性(Isolation):
- 容器提供了操作系统级别的隔离,每个容器有自己的文件系统、网络接口和进程空间。
-
可移植性(Portability):
- 容器可以在不同的环境和平台上无缝迁移和运行,包括开发、测试和生产环境。
-
轻量级(Lightweight):
- 容器共享宿主机的内核,不需要像虚拟机那样模拟整个操作系统,因此启动速度快,资源占用小。
容器化在微服务中的角色:
-
环境一致性:
- 容器化确保了微服务在不同环境(开发、测试、生产)中具有一致的运行环境,减少了“在我机器上可以运行”的问题。
-
快速部署:
- 容器可以快速启动和停止,使得微服务的部署和扩展更加迅速。
-
服务隔离:
- 容器提供了服务之间的隔离,确保一个服务的问题不会影响其他服务。
-
依赖管理:
- 容器镜像包含了微服务的所有依赖项,简化了依赖管理。
-
持续集成和持续部署(CI/CD):
- 容器化与CI/CD流程无缝集成,使得自动化测试、构建和部署更加容易。
-
资源利用率:
- 容器化提高了资源的利用率,可以在单个宿主机上运行多个微服务容器。
-
可扩展性:
- 容器化使得微服务可以水平扩展,根据负载动态增加或减少实例数量。
-
故障隔离:
- 容器化提供了更好的故障隔离,一个容器的故障不会导致整个系统的崩溃。
-
安全性:
- 容器可以运行在受限模式下,降低安全风险。
-
多语言和多平台支持:
- 容器化支持多种编程语言和框架,可以在不同的操作系统平台上运行。
容器化技术,如Docker,已经成为微服务架构的基石之一。它为微服务提供了一种高效、灵活和可移植的部署方式,简化了开发、测试和运维的复杂性。同时,容器编排工具,如Kubernetes,进一步扩展了容器化的优势,使得大规模微服务部署和管理成为可能。
相关文章:
持续总结中!2024年面试必问 20 道分布式、微服务面试题(七)
上一篇地址:持续总结中!2024年面试必问 20 道分布式、微服务面试题(六)-CSDN博客 十三、请解释什么是服务网格(Service Mesh)? 服务网格(Service Mesh)是一种用于处理服…...
AJAX 跨域
这里写目录标题 同源策略JSONPJSONP 是怎么工作的JSONP 的使用原生JSONP实践CORS 同源策略 同源: 协议、域名、端口号 必须完全相同、 当然网页的URL和AJAX请求的目标资源的URL两者之间的协议、域名、端口号必须完全相同。 AJAX是默认遵循同源策略的,不…...
3 数据类型、运算符与表达式-3.1 C语言的数据类型和3.2 常量与变量
数据类型 基本类型 整型字符型实型(浮点型) 单精度型双精度型 枚举类型 构造类型 数组类型结构体类型共用体类型 指针类型空类型 #include <stdio.h> #include <string.h> #include <stdbool.h> // 包含布尔类型定义 // 常量和符号常量 #define PRICE 30//…...
NSSCTF-Web题目5
目录 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 3、思路 [LitCTF 2023]作业管理系统 1、题目 2、知识点 3、思路 [HUBUCTF 2022 新生赛]checkin 1、题目 2、知识点 3、思路 [SWPUCTF 2021 新生赛]error 1、题目 2、知识点 数据库注入、报错注入 3、思路 首先…...
cnvd_2015_07557-redis未授权访问rce漏洞复现-vulfocus复现
1.复现环境与工具 环境是在vulfocus上面 工具:GitHub - vulhub/redis-rogue-getshell: redis 4.x/5.x master/slave getshell module 参考攻击使用方式与原理:https://vulhub.org/#/environments/redis/4-unacc/ 2.复现 需要一个外网的服务器做&…...
免费,C++蓝桥杯等级考试真题--第7级(含答案解析和代码)
C蓝桥杯等级考试真题--第7级 答案:D 解析:步骤如下: 首先,--a 操作会使 a 的值减1,因此 a 变为 3。判断 a > b 即 3 > 3,此时表达式为假,因为 --a 后 a 并不大于 b。因此,程…...
python为什么要字符串格式化
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。相对于老版的%格式方法,它有很多优点。 1.在%方法中%s只能替代字符串类型,而在format中不需要理会数据类型; 2.单个参数可以…...
go语言后端开发学习(三)——基于validator包实现接口校验
前言 在我们开发模块的时候,有一个问题是我们必须要去考虑的,它就是如何进行入参校验,在gin框架的博客中我就介绍过一些常见的参数校验,大家可以参考gin框架学习笔记(四) ——参数绑定与参数验证,而这个其实也不是能够完全应对我…...
系统架构设计师【补充知识】: 应用数学 (核心总结)
一、 图论之最小生成树 (1)定义: 在连通的带权图的所有生成树中,权值和最小的那棵生成树(包含图中所有顶点的树),称作最小生成树。 (2)针对问题: 带权图的最短路径问题。 (3)最小生成树的解法有普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法,我…...
【ArcGIS微课1000例】0118:一文讲清楚tif(geotiff)栅格数据格式
文章目录 一、Tiff概述二、GeoTiff概述1. ovr文件2. tfw文件3. xml文件4. dbf文件一、Tiff概述 TIFF(Tagged Image File Format)是一种常见的图像文件格式,它被广泛用于存储和传输各种类型的图像数据。下面是对TIFF格式数据的介绍: 图像存储:TIFF格式可以存储多通道的位…...
调用第三方API --------------Python篇
在项目开发过程中,可能需要调用第三方的一些API或者公司提供的数据接口来得到相应的数据或者实现对应的功能。 因此API的调用和数据接口的访问都是做数据分析的一个常用操作,如何快速实现API和数据接口的调用,网上一般提供很多语言版本&#…...
Web自动化测试-掌握selenium工具用法,使用WebDriver测试Chrome/FireFox网页(Java
目录 一、在Eclipse中构建Maven项目 1.全局配置Maven 2.配置JDK路径 3.创建Maven项目 4.引入selenium-java依赖 二、Chrome自动化脚本编写 1.创建一个ChromeTest类 2.测试ChromeDriver 3.下载chromedriver驱动 4.在脚本中通过System.setProperty方法指定chromedriver的…...
maven多模块项目搭建
文章目录 创建方式创建父项目创建子模块 目录结构示例父模块模块A模块B(并在模块B中引入模块A) 注意事项 创建方式 创建父项目 #创建文件夹后,进入目录,执行以下命令 PS D:\demo> mvn archetype:generate #将输出很多模板&am…...
PostgreSQL的视图pg_tables
PostgreSQL的视图pg_tables pg_tables 是 PostgreSQL 中的一个系统视图,用于显示当前数据库中所有用户定义的表的信息。这个视图提供了关于表的名称、所属模式(schema)、所有者以及表类型等详细信息。 pg_tables 视图的主要列 列名类型描述…...
Stable diffusion采样器详解
在我们使用SD web UI的过程中,有很多采样器可以选择,那么什么是采样器?它们是如何工作的?它们之间有什么区别?你应该使用哪一个?这篇文章将会给你想要的答案。 什么是采样? Stable Diffusion模…...
为什么要进行渗透测试?
渗透测试的重要性 渗透测试是一种安全评估技术,旨在模拟黑客攻击,发现和利用系统漏洞,以评估企业信息系统的安全性。以下是进行渗透测试的几个主要原因: 1.发现潜在的漏洞和安全风险:渗透测试可以模拟真实的攻击行为…...
后方碰撞预警系统技术规范(简化版)
后方碰撞预警系统技术规范(简化版) 1 系统概述2 预警区域3 预警目标4 功能需求功能条件5 显示需求6 指标需求1 系统概述 后方碰撞预警系统RCW(Rear Collision Warning)是在后方车辆即将与自车发生碰撞之前,激活危险警告灯以较高频率闪烁,从而吸引后方驾驶员的注意力,避免…...
Position定位
Position定位 CSS中position属性是比较常用的元素定位方案,position常用的取值有static、relative、absolute、fixed、sticky、inherit。 static static属性是HTML元素的默认值,即没有定位,遵循正常的文档流对象,对于top、bott…...
npm install 的原理
1. 执行命令发生了什么 ? 执行命令后,会将安装相关的依赖,依赖会存放在根目录的node_modules下,默认采用扁平化的方式安装,排序规则为:bin文件夹为第一个,然后是开头系列的文件夹,后…...
基于I2C协议的OLED显示(利用U82G库)
目录 一、I2C协议 1、了解I2C协议的基本原理和时序协议 基本原理 时序协议 2、掌握0.96寸OLED屏的工作原理,汉字点阵显示原理 OLED 工作原理 汉字点阵显示原理 3、掌握开源GUI库U82G在stm32上的移植编译方法,以及图形界面可视化技术。 二、具体…...
【文末附gpt升级秘笈】探索AGI之路:穿越大模型的冰与火,谱写未来技术的乐章
探索AGI之路:穿越大模型的冰与火,谱写未来技术的乐章 摘要 随着人工智能技术的飞速发展,大模型成为了业界关注的焦点。然而,大模型并非万能,其背后隐藏着诸多迷思与挑战。本文基于“AGI技术50人”访谈栏目的素材&…...
国内12寸先进封装厂家的一些情况
一、12寸先进封装厂家 在中国大陆,专注于12英寸(300mm)晶圆的先进封装技术的企业包括但不限于以下几家: 1. 长电科技(JCET Technologies Co., Ltd.):长电科技是中国领先的半导体封装测试企业之…...
【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57, Leetcode 322, 279
【代码随想录训练营】【Day 48】【动态规划-7】| 卡码 57, Leetcode 322, 279 需强化知识点 python 的幂次计算, 10 ** 5, 10 **(0.5) 题目 卡码 57. 爬楼梯(第八期模拟笔试) 注…...
【Qt】Qt常见的数据类型
思维导图 学习目标 一、基础类型 因为Qt是一个C的框架,因此C的语法和数据类型在Qt中都是被支持的,但是Qt中也是定义了一些属于自己的数据类型,不过,好多数据类型都是对C的数据类型进行封装,下面来简要介绍一下这些基…...
【源码】Spring Data JPA原理解析之事务执行原理
Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 5、Spring Data JPA自定…...
第十一篇——信息增量:信息压缩中的保守主义原则
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 通过信息中的保守主义,我想到了现实中人的保守主义一样&#…...
中国飞行器设计创新大赛多旋翼无人机任务飞行
源码:后续补充 1、启动launch文件 roslaunch robot_bringup mission.launch <launch> <!--启动mavros节点 --><include file"$(find mavros)/launch/px4.launch" /><!--启动USB摄像头节点 --><include file"$(find…...
WPF-UI布局
WPF布局元素有如下几个: Grid:网格。可以自定义行和列并通过行列的数量、行高和列宽来调整控件的布局。StackPanel:栈式面板。可将包含的元素在竖直或水平方向上排成一条直线,当移除一个元素后,后面的元素会自动向前移…...
武忠祥17堂课没必要全听,这几个才是精华!
作者:Captain 链接:https://www.zhihu.com/question/381665751/answer/3197724055 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 17堂课类似于习题课,是专题训练 17堂课省略了…...
Android 蓝牙profile的配置
在做BQB认证之前,我们需要确认那些profile之前,我们需要查看profile的配置情况 Android13版本前蓝牙profile的配置 MTK的项目代码如下 vendor\mediatek\proprietary\packages\modules\Bluetooth\android\app\res\values\config.xml 高通的项目代码如…...
做设计什么网站平台好点做私活/长春网站快速排名提升
2013-06-19 09:46:22 正在登录 10.21.34.206 ...2013-06-19 09:46:22 登录设备 10.21.34.206 成功2013-06-19 09:46:24 开始加固2013-06-19 09:46:29 加固前上传文件成功2013-06-19 09:46:42 加固前备份文件成功2013-06-19 09:46:42 仅使用ssh V2协议 (成功)2013-06-19 09:46:4…...
加强 政府网站信息内容 建设/甲马营seo网站优化的
Android环境搭建 首先下载jdk8和之前学过的Java的配置环境相同 之后下载Android Studio选择与自己电脑所对应的安装包 只有新建项目工程 然后打开Android 虚拟机 选择与自己手机相匹配的Android版本 然后虚拟安卓手机模仿按键图标 依次可以运行出来按钮界面...
h5网站制作一般多少钱/杭州专业seo服务公司
1.创建项目:切换到创建项目的目录,输入 django-admin startproject firstproject firstproject为项目名称,创建成功后会在创建目录的位置创建一个firstproject的文件夹 文件夹中各个文件的功能如下: 创建项目应用APP:…...
无锡网站推广公司/app制作公司
转载于:https://www.cnblogs.com/nkwy2012/p/7975808.html...
建设贷款网站哪家好/网店代运营合同
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步: 所谓同步,就是在c端发出一个功能调用时,在没有得到结果之…...
网站如何做线上和线下推广/谷歌google地图
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼TC 2.0版#include#includeint main(){int key;while(1){keygetch();/*用于去掉第一个字节*/if(key27) break; /*如果是ESC退出*/if(key>31 && key<127) /*如果不是特殊键*/{printf("You have pressed %c Press …...