4-10 面经

1、说一下项目的整体架构
2、RabbitMQ和kafka的特点,各自适用于什么场景
3、kafka为什么是高可用的
4、说一下Es的分片
5、说一下你们redis集群结构,redis的使用场景
6、分片集群中,3个主节点,3个从节点,如果某个主从节点都宕机,会怎样
7、聊下你们项目使用分布式锁的场景
8、reddsion做分布式锁有哪些优化
9、分布式事务说一下二阶段提交存在的问题
10、说一下mysql索引结构 b+树
11、聚簇索引,回表,索引覆盖
12、你们项目用了分库分表吗? 数据发生倾斜怎么办?



2、看你的项目中使用到了RabbitMQ和kafka,说一下各自特点,适用于什么场景
RabbitMQ 适用于需要可靠性传输、多种消息传输模式、灵活路由和交换机模型的应用场景
Kafka 适用于高吞吐量、低延迟、大规模数据处理的场景

3、kafka为什么是高可用的?
1)分布式架构:kakfa是一个分布式系统,消息被存储在多个broker上
2)分区 + 副本
3)isr机制
4)leader选择
5)故障恢复
6)节点的水平扩展

4、说一下ElasticSerch的分片,说一下倒排索引。
会将文档的某个字段进行分词,倒排数据就是单词到文档ID的映射

5、说一下redis集群结构,redis的使用场景?
集群架构:分片集群,三个主节点,三个从节点
redis使用场景:
● 缓存
● 分布式锁
● 利用redis的递增做点赞的累加

6、分片集群中,3个主节点,3个从节点,如果某个主从节点都宕机,会怎样
其他分片仍然可以对外提供服务。

7、聊下你们项目使用分布式锁的场景
热点数据缓存击穿时,使用分布式锁来解决

8、reddsion做分布式锁有哪些优化?

9、分布式事务说一下二阶段提交存在的问题?
什么是二阶段提交?
二阶段提交(Two-Phase Commit)是一种在分布式系统中用于确保事务的一致性的协议。
在分布式系统中,数据分布在多个节点上,因此需要一种机制来确保在跨多个节点的操作中,事务要么全部提交,要么全部回滚,以维护数据的一致性。

分布式事务中二阶段提交协议存在的问题?
● 阻塞问题:在二阶段提交的第二阶段中,如果协调者(Transaction Coordinator)在等待参与者(Transaction Participants)的提交或者回滚响应时发生故障,会导致参与者长时间阻塞,资源无法释放,可能引发性能问题和系统可用性问题。
● 单点故障:二阶段提交协议中的协调者是一个单点,如果协调者发生故障,整个事务流程可能被瘫痪,无法进行提交或者回滚操作。
● 同步通信开销:在准备和提交阶段,协调者需要和所有参与者进行同步通信,这会引入较大的通信开销,尤其在参与者数量庞大的情况下,可能影响性能。
● 数据不一致:在二阶段提交中,如果在准备阶段某个参与者发生故障,或者提交阶段中协调者发生故障,可能导致部分参与者已经提交事务,而其他参与者尚未提交,从而引发数据不一致性问题。
● 长时间锁定资源:在二阶段提交协议中,参与者在准备阶段会锁定资源,直到收到提交或回滚请求后才会释放。如果有参与者在等待阶段长时间不响应或者发生故障,会导致资源长时间被锁定,影响系统的并发性能。

10、说一下mysql索引结构 b+树
多路平衡树
数据都存在叶子节点,并且节点之前有指针相互关联,组成一个双向链表

这种结构的优点:
范围查询效率高
支持快速的顺序访问
范围删除和插入更高效

11、聚簇索引、回表,唯一索引查询主键ID时会走回表吗
聚簇索引: 叶子节点存储的是完整的数据,主键索引是聚簇索引
回表:非聚簇索引叶子节点存储的都是主键ID,所以想获取完整数据会进行回表
唯一索引查询主键ID时会走回表吗:不会,因为索引覆盖

12、你们项目用了分库分表吗? 数据发生倾斜怎么办?
用到了
在统计直播间的人员流水信息时,会将观众进入,离开的数据分表入库
分表策略: hash(直播ID) % 10
发生了数据倾斜怎么办:
1)优化分表策略
分表只是为了降低单表的数据量,并且观众流水只是为了做一些统计工作给管理员使用,所以没有注重解决数据倾斜的问题

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

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

相关文章

Linux C应用编程:MQTT物联网

1 MQTT通信协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传 输)是一种基于客户端-服务端架构的消息传输协议,如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊…

sqoop:错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster(已解决)

1 报错信息 错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster 说明: 操作将数据库中的数据导入到HDFS中 执行sqoop import --connect jdbc:mysql://aaa01:3306/mysql --username root --password root --table test 时报了以下错误 2 报…

遥控小车电子方案

遥控小车的功能开发主要包括以下几个方面: 1.基本功能开发: 前进、后退、左转、右转:通过遥控器上的控制按钮,实现小车的前进、后退、左转和右转。加速、减速:通过遥控器上的油门控制按钮,实现小车的加速…

【深度学习】Fine-Grained Face Swapping via Regional GAN Inversion高保真换脸范式

文章目录 代码介绍实践效果 帮助、问询 代码 https://github.com/e4s2022/e4s 介绍 Fine-Grained Face Swapping via Regional GAN Inversion 提出一种新的高保真换脸范式,能够保留期望的微妙几何和纹理细节。从微观面部编辑的角度重新思考换脸任务,基…

Matlab 实时读取串口并绘图

Matlab 实时读取串口并绘图 Vofa Vofa 是一个很好的跨平台上位机软件,但是它无法保存数据,而且作者也并没有要继续更新的意思,保存数据功能应该是遥遥无期了。因此本文使用 Matlab 实时读取串口数据,并使用 plot 函数绘制。 vo…

洛谷P1305 新二叉树

Java 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();char arr[][] new char[n][3];for (int i 0; i < n; i) {String strsc.next();char arr1[]str.toCharArray()…

常见分类算法及其应用

常见分类算法及其应用 一、引言 在机器学习和数据挖掘领域&#xff0c;分类算法是非常重要的一类算法。它们被广泛应用于各种场景&#xff0c;如邮件过滤、金融欺诈检测、疾病预测等。本文将介绍几种常见的分类算法&#xff0c;包括逻辑回归、决策树、随机森林、支持向量机和…

数据结构 动态规划(Dynamicprogramming)详解

动态规划&#xff08;Dynamic Programming&#xff0c;简称 DP&#xff09;是一种在数学、计算机科学和经济学中使用的&#xff0c;通过把原问题分解为相对简单的子问题的方式来求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。动态规划的基本思想…

Linux学习-网络UDP

网络 数据传输,数据共享 网络协议模型 OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&#xff08;数据报、流式&#…

Linux 中断会产生嵌套吗?

文章目录 1. 前言2. Linux 中断是否会嵌套&#xff1f;2.1 分析背景2.2 中断处理抢占、嵌套可能性分析2.3 中断处理抢占、嵌套小结 3. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. …

拥塞控制相关总结

拥塞控制概念 网络拥塞&#xff1a;当某个阶段&#xff0c;网络中涌入大量数据包时&#xff0c;可能会导致路由器的转发不及时&#xff0c;大量数据包会陆续填满路由器的缓冲区&#xff0c;缓冲区满了&#xff0c;再涌入数据时就会造成数据的丢失&#xff0c;这时网络发生了拥塞…

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库&#xff0c;也可以单独新建一个评论存储仓库。 我的博客项目在gitee上&#xff0c;就以新建存储仓为例&#xff1a; 使用Discussions评论系统必须开通Discussions模块&#xff01; 安装giscus插件 https://github.com/apps/…

如何在香橙派AIpro开发板升级CANN软件包

香橙派AIpro开发板是香橙派联合昇腾精心打造的高性能AI开发板&#xff0c;开发者可以基于昇腾CANN软件栈能力&#xff0c;快速构建AI应用和业务&#xff0c;实现图像、视频等多种数据分析与推理计算。在之前的文章中&#xff0c;我们已经了解了如何搭建开发环境&#xff0c;并基…

通过调用Vcenter-Api获取Vcenter中服务器信息

通过调用Vcenter-Api获取Vcenter中服务器信息 文章目录 通过调用Vcenter-Api获取Vcenter中服务器信息1. 获取Vmware API帮助文档2. 获取访问凭证3. 获取服务器清单4. 获取服务器更多信息5. 获取虚机更多信息6. 获取磁盘信息7. 获取操作系统相关 1. 获取Vmware API帮助文档 htt…

SHAP安装问题

一、安装 pip install shap -i https://pypi.tuna.tsinghua.edu.cn/simple 二、遇到问题 1、提示报错如下&#xff1a; ModuleNotFoundError: No module named numba.core 安装numba&#xff1a; pip install numba -i https://pypi.tuna.tsinghua.edu.cn/simple 提示已经…

FPGA核心板在声呐系统中的应用

前言 声纳系统使用声脉冲来探测、识别和跟踪水下物体。一个完整的声纳系统是由一个控制和显示部件、一个发射器电路、一个接收器电路和同时能作为发射装置&#xff08;扬声器&#xff09;和探测装置&#xff08;高灵敏度麦克风&#xff09;的传感器组成。 声纳系统图 技术挑战…

python爬虫----BeautifulSoup(第二十天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

Python初级笔记4 排序

冒泡排序 1. 算法步骤 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。 对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。这步做完后&#xff0c;最后的元素会是最大的数。 针对所有的元素重复以上的步骤&#xff0c;除了最后一个。…

Linux/October

October Enumeration Nmap 扫描发现对外开放了22和80端口&#xff0c;使用nmap详细扫描这两个端口 ┌──(kali㉿kali)-[~/vegetable/HTB/October] └─$ nmap -sC -sV -p 22,80 -oA nmap 10.10.10.16 Starting Nmap 7.…

基于Springboot的笔记记录分享网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的笔记记录分享网站&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…