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.mfbz.cn/a/552024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

反射

目录 01、Java反射机制概述1.1、使用反射,实现同上的操作、调用私有属性 02、理解Class类并获取Class实例2.1、Class类的理解2.2、获取Class实例的4种方式2.3、Class实例对应的结构的说明 03、ClassLoader的理解3.1、ClassLoader的理解3.2、使用ClassLoader加载配置…

C语言【数组】

一、数组基本语法 1. 什么是数组 数组是c语言的一种数据结构,用于存储一组具有相同数据类型的数据; 数组中每个元素可以通过下标进行访问,索引从0开始,最大值为数组长度-1。 2. 数组的使用 类型 数组名[元素个数]; int arr[5]…

xftp、xshell连不上虚拟机解决方法

一、检查连接虚拟机ip看是否正确 查看虚拟机系统 IP ifconfig 二、检查虚拟机防火墙是否关闭 查看防火墙状态(ubuntu) sudo ufw status 关闭防火墙 sudo ufw disable 查看防火墙状态(centos) systemctl status firewalld.service 关闭防火墙 systemctl stop firewalld.se…

HarmonyOS Next 悬浮窗拖拽和吸附动画

介绍 本示例使用position绝对定位实现应用内悬浮窗,并且通过animateTo结合curves动画曲线实现悬浮窗拖拽跟手和松手吸附边缘的弹性动画效果。 效果图预览 使用说明 按住悬浮窗可以拖拽,松开后悬浮窗自动靠左或靠右,如果悬浮窗超出内容区上…

线圈、寄存器、存储区代号、功能码 案例说明

线圈和寄存器 表示数据类型 线圈:表示Boolean数据类型 寄存器:表示非Boolean数据类型,用来暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能。 ModbusRTU 读输出线圈 存储区代号 0区 功能码 0x01 读输入…

冯喜运:4.17晚间黄金原油操作建议

【黄金消息面解析 】:周三(4月17日)欧洲时段,现货黄金短线持续反弹,当前金价位于2394美元/盎司附近,已从日内低点2372美元/盎司附近回升。金价在触及纪录高位2432美元/盎司后形成了对称三角形。金价下一个潜在障碍为历史高位2432美…

JS/TS笔记学习1

周末总得学点什么吧~ 奥利给! 跑火车 递归 减速 let currentIndex 0; let speed 500; // 初始速度,单位是毫秒 let decrement 20; // 每次迭代速度减少的量 const cells document.querySelectorAll(.cell); function highlightCell() { cells.forEach(…

14_SpringMVC

文章目录 MVCSpringMVC与JavaEE对比SpringMVCSpringMVC的核心流程SpringMVC入门案例RequestMapping注解的使用Handler方法的返回值Handler方法的形参keyvalue形式的请求参数Json请求参数 RESTful风格接口静态资源处理FilterHandlerInterceptor异常处理SpringMVC核心流程流程图 …

界面设计【1】-项目的UI设计css

引言: 本篇博客对简单的css html界面设计做了简要介绍 这篇博客主要就是介绍了做横向项目中,CSS界面设计与优化。 界面设计【1】-项目的UI设计css 1. 什么是css?2. css编程demo3. 可视化效果 1. 什么是css? CSS是层叠样式表(Cascading S…

一篇写给前端的精选面试题,中大厂面试重复率高到爆!!!

写在前面 针对前端环境恶劣,很多人在前端面试的时候都直接去找相关公司的面经,或者没有真正新一点各个厂里常用面试题,现在小编给大家整理好了,前端面试无非就是那些,面试题更别谈新旧,只不过很多公司常用…

L2-024. 部落-PAT团体程序设计天梯赛GPLT(tarjan缩点)

题解&#xff1a; 可能有人在多个圈子&#xff0c;那么这几个圈子合并为一个部落&#xff0c;一个做法就是将圈子转化为有向图&#xff0c;最后求出的缩点就是部落个数。再查询是否在一个缩点当中。 #include<bits/stdc.h> #pragma GCC optimize("Ofast") #d…

BackTrader 中文文档(十二)

原文&#xff1a;www.backtrader.com/ Visual Chart 原文&#xff1a;www.backtrader.com/docu/live/vc/vc/ 与 Visual Chart 的集成支持两者&#xff1a; 实时数据提供 实时交易 Visual Chart是完整的交易解决方案&#xff1a; 在单个平台上集成图表、数据源和经纪功能 更多…

【在线OJ系统】自定义注解实现自增ID的无感插入

实现思路 首先自定义参数注解&#xff0c;然后根据AOP思想&#xff0c;找到该注解作用的切点&#xff0c;也就是mapper层对于mapper层的接口在执行前都会执行该aop操作&#xff1a;获取到对于的方法对象&#xff0c;根据方法对象获取参数列表&#xff0c;根据参数列表判断某个…

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解 目录 时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解&#xff08;完整源码和数据) 1.利用鲸…

Semaphore信号量源码解读与使用

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 什么是Semaphore&#xff1f; 3. Semaphore源码解读 3.1 acquire…

Linux系统的引导过程与服务控制

目录 一、Linux操作系统引导过程 二、Linux系统服务控制 系统初始化进程 三、运行级别切换 *运行级别及切换 Linux系统的运行级别 四、优化开机自动加载服务 五、修复MBR扇区故障 一、Linux操作系统引导过程 主要步骤 开机自检&#xff1a; 检测硬件设备&#…

C++从入门到精通——const与取地址重载

const与取地址重载 前言一、const正常用法const成员函数问题const对象可以调用非const成员函数吗非const对象可以调用const成员函数吗const成员函数内可以调用其它的非const成员函数吗非const成员函数内可以调用其它的const成员函数吗总结 二、取地址及const取地址操作符重载概…

小米汽车SU7隐藏款曝光!新配色和透明车身亮了 coreldraw教程入门零基础 coreldraw下载 coreldraw2024

刘强东说&#xff0c;论营销&#xff0c;没有任何人能比得过小米。 小米SU7发布会24小时&#xff0c;下定量就超过了蔚来汽车2023年四季度的交付量。 ▲雷军发布的小米SU7 24小时订单量 小米SU7发布会后五天&#xff0c;雷军在北京亦庄工厂亲自交付了第一批创世版本小米SU7&a…

黑马点评(四) -- 分布式锁

1 . 分布式锁基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xff0c;让…

gpt4.0人工智能网页版

在最新的AI基准测试中&#xff0c;OpenAI几天前刚刚发布的GPT-4-Turbo-2024-04-09版本&#xff0c;大幅超越了Claude3 Opus&#xff0c;重新夺回了全球第一的AI王座。 GPT-4-Turbo-2024-04-09版本是目前国内外最强的大模型&#xff0c;官网需要20美元每月才能使用&#xff0c;…