五八 领岳科技面经 2024.06.06

五八面经

1、多线程打印有多少种实现方式?

2、ReentrantLock中的公平锁是怎么实现的?

3、Redis用在什么场景下?分布式锁怎么设置?如何解锁?如果想要续锁应该怎么做?

4、redis单线程怎么支持10w qps的并发?

5、mysql读写怎么实现的优化?答分库分表

6、怎么实现接口的幂等性?

7、G1垃圾收集器和CMS有什么区别?如果内存空间特别大的情况下,用哪种垃圾收集器比较好?

8、线上CPU飙升问题如何排查?

9、kafka有用过吗?什么场景下用到?如果想要消息被下游全部接收到,有什么方法?

这道题没有回答好,给出标准答案:

复制机制
Kafka使用了分区和副本的概念。每个分区可以有多个副本,分布在不同的Broker上。
当消息写入到一个分区时,它会被复制到该分区的所有副本上。这样,即使某个Broker发生故障,仍然可以从其他副本中读取数据,确保数据的可靠性。
ISR(In-Sync Replicas)机制
ISR是指与Leader副本保持同步的副本集合。
Kafka确保只有ISR中的副本才能成为Leader,这确保了Leader副本在消息写入后会等待ISR中的其他副本都完成同步,从而保证了消息的可靠性。
消息确认机制
生产者发送消息时可以选择等待相应的确认(通过配置acks参数)。例如,配置acks=all表示Partition Leader接收到消息之后,还必须要求ISR列表里跟Leader保持同步的那些Follower都要把消息同步过去,才能认为这条消息是写入成功了。
消费者在成功消费一条消息后,会发送消息确认机制,将消息标记为已消费。
消费者重试
如果消息消费失败,消费者可以实现重试策略,尝试重新消费失败的消息,直到成功为止。
手动提交Offset
Kafka消费者默认可能采用自动提交Offset的策略,这可能会导致在消息真正被业务逻辑消费完成之前,Offset已经被提交,进而造成消息丢失。
为了确保消息被全部消费,建议关闭自动提交Offset,并在自己处理完毕之后手动提交Offset。
幂等性处理
在某些情况下,即使消息被成功消费并提交了Offset,但由于某些原因(如进程崩溃)可能导致数据没有真正保存到目标系统。此时,如果消息被重新消费,可能会导致数据重复。因此,可以通过幂等性处理来确保数据只被保存一次。
分布式事务
在需要跨多个系统或服务保证数据一致性的场景中,可以使用分布式事务来确保消息被全部接收并消费。这通常涉及到使用支持分布式事务的数据库或中间件。

领岳科技

1、遇到过线上问题吗?如何解决的?

2、项目经历简述

3、算法题:
现有一个内部只有若干“1”、“-1”,“0”的int数组,要求在原数组上进行操作,使所有的“1”均在数组的左面,所有的“0”均在数组的右面

实现

public void reorderArray(int[] arr) {  int low = 0;  int mid = 0;  int high = arr.length - 1;  while (mid <= high) {  if (arr[mid] == 1) {  // Swap arr[mid] with arr[low]  int temp = arr[low];  arr[low] = arr[mid];  arr[mid] = temp;  low++;  mid++;  } else if (arr[mid] == 0) {  // Only move mid pointer  swap(arr, mid, high);  high--;  } else {  // Skip -1 or other non-1 non-0 values  mid++;  }  }  
}  // Helper function to swap two elements in the array  
private void swap(int[] arr, int i, int j) {  int temp = arr[i];  arr[i] = arr[j];  arr[j] = temp;  
}

问:为什么右指针不能和mid一起移动?为什么左指针可以和t一起移动?这个问题没有回答好

右指针不能移动的反例

1,-1,1,-1,0,1,-1,0,1

如果右指针和mid同时移动,当指向第一个0和第二个0的指针交换完毕,就会扫过0和0继续走到1和-1,这样会漏解,不符合题目的要求

为什么左指针可以和t一起移动?面试官说因为low只能指向-1,所有1在mid扫过的部分都已经放在left了,一旦放在left,left就可以向前走;但是0放在右边的话,0不能向左走,因为可能0的前面还有1

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

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

相关文章

webpack 预加载资源

1 效果图对比 preload.js就是我们预加载的资源 1.1什么情况下使用预加载 比如&#xff1a;是用户点击按钮时才加载这个资源的&#xff0c;如果资源体积很大&#xff0c;那么用户会感觉到明显卡顿效果 要优化这种情况&#xff0c;可以使用preload和prefetch技术 1.2 2.什么是…

【Python Cookbook】S01E24 如何定义正则表达式模式从而准确匹配内容,通过 ? 调整贪心策略为非贪婪

目录 问题解决方案讨论 问题 如果使用正则化表达式&#xff0c;或者说如何通过准确定义正则化表达式的模式从而对字符串内容做准确的匹配&#xff1f; 解决方案 例如&#xff0c;在下述案例中&#xff0c;如何匹配出字符串文本 text_1 中双引号扩起的内容。 import repatte…

Navicat修改数据库主键

在MySQL数据库&#xff0c;主键ID默认自增&#xff08;最大的数字自增&#xff09;&#xff0c;但是&#xff0c;在某些情况下&#xff0c;我们想将其从头开始………… 借助Navicat修改数据库主键即可&#xff01; 1. 找到数据库&#xff0c;点击需要更改的表&#xff1a;点击…

Bootstrap blazor中改变table组件中鼠标经过时行的背景色

在table组件中&#xff0c;有个行高亮的设置&#xff0c;但是它是基于内容的行高亮&#xff0c;至于怎么在鼠标经过时行高亮就没有说了&#xff0c;百度上好多针对这方面设置的内容都是无效的&#xff0c;可能对以前的版本有效果吧。 自定义行高亮 通过设置 SetRowClassForm…

使用Apache Kafka构建可扩展的消息系统——Java的高吞吐数据处理

引言&#xff1a; 在处理大数据和实时事件驱动架构时&#xff0c;Apache Kafka展示了其强大的能力。作为一个高性能的消息队列&#xff0c;Kafka支持数据的发布和订阅&#xff0c;以及对数据流的存储&#xff0c;使其成为构建复杂的实时应用程序的核心组件。 什么是Apache Ka…

经典算法 - 回溯法

文章目录 1. 基本概念2. 组合问题3. 组合总和Ⅲ4. 电话号码的字母组合5. 分割回文串6. 复原IP地址7. 子集8. 全排列9. 全排列Ⅱ10. N皇后11. 解数独 1. 基本概念 递归和回溯相辅相成。只要有递归&#xff0c;就会有回溯。 回溯法是一种纯暴力的搜索&#xff0c;并不是一种高效…

uniapp在自定义tabbar上动态修改svg图标颜色和字体颜色

需求&#xff1a;在uniapp项目内&#xff0c;自定义tabbar&#xff0c;需要将图标更换成svg格式&#xff0c;可动态修改图标及字体颜色。 效果图如下&#xff1a; 我使用的是uniapp结合uview2的组件使用&#xff0c;代码如下&#xff1a; <u-tabbar :value"currentIn…

Spring-Security(二)OAuth2认证详解(持续更新)

Spring Security & Oauth2系列&#xff1a; Spring Security&#xff08;一&#xff09; 源码分析及认证流程 Spring Security&#xff08;二&#xff09;OAuth2认证详解及自定义异常处理 文章目录 1、OAuth2.0 简介1.1 OAuth2.0 相关名词解释1.2 四种授权模式 1.3 、OAu…

10、架构-从类库到服务之网关路由

目录 概述 主要概念 网关的定义与重要性 历史背景 网关的发展与演变 技术细节 网关的职责 路由功能 过滤功能 实现网关的技术选择 四层和七层网关 性能与可用性 网络I/O模型 BFF网关 实际应用 常见的网关实现框架 常见问题及解决方案 结论 概述 网关&#x…

大型零售企业总部到分公司数据发放,有没有更优化的方案?

大型零售企业在市场经济中扮演重要角色&#xff0c;是保证基础商品生产、流通和供给的重要一环。随着企业发展&#xff0c;很多大型零售企业都会在全国、乃至全球各地开设分公司&#xff0c;用以降低生产和运营成本&#xff0c;更好地提供本地化服务。 为了保证总部与分公司间信…

Linux环境---在线安装jdk

Linux环境—在线安装jdk 一、使用步骤 1.安装环境 JDK版本&#xff1a;1.8 1.1 建立存放软件的目录 注意&#xff1a;此处本人是将需要按照的软件存放在directory目录下&#xff0c;可根据实际情况调整接收路径。 命令如下&#xff1a; mkdir directory2.安装jdk 2.1 建…

解决Spark流处理产生的小文件问题

做流批一体&#xff0c;湖仓一体的大数据架构&#xff0c;常见的做法就是&#xff1a; 数据源->spark Streaming->ODS&#xff08;数据湖&#xff09;->spark streaming->DWD&#xff08;数据湖&#xff09;->... 那么数据源->spark Streaming->ODS&…

【Selenium+java环境配置】(超详细教程常见问题解决)

Seleniumjava环境配置 windows电脑环境搭建-chrome浏览器1. 下载chrome浏览器2. 查看chrome浏览器版本3. 下载chrome浏览器驱动4.配置系统环境变量PATH 验证环境是否搭建成功1. 创建java项目&#xff0c;添加pom文件中添加依赖2. 编写代码运行 常见问题&解决办法1.访问失败…

Python 脚本打包

打包 为什么要打包 当你想将Python脚本给别人用时&#xff0c;怎么办&#xff1f;Python运行依赖相关的环境&#xff0c;因此将脚本打包成exe&#xff0c;直接运行exe即可 怎么打包 本文介绍的方法是Pyinstaller Pyinstaller 安装 想要使用&#xff0c;必须保证该模块存…

移动端 UI 风格,魅力无限

移动端 UI 风格&#xff0c;打造极致体验

Django分页

1、在视图函数文件中引入‘分页器’ from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 2、给原来的罗列信息函数&#xff0c;添加分页功能&#xff0c;即按照页码&#xff0c;只返回部分信息。 login_required def article_list(request):article…

【因果推断python】21_匹配2

目录 匹配估计器 匹配估计器 子分类估计器在实践中用得不多&#xff08;我们很快就会明白为什么&#xff0c;主要是因为维度诅咒这个原因&#xff09;&#xff0c;但它让我们很好地、直观地了解了因果推理估计器应该做什么&#xff0c;以及它应该如何控制混淆因素。这使我们能…

Yuan 2.0-M32 是一个基于 Yuan 2.0 架构的双语混合专家 (MoE) 语言模型,旨在以更少的参数和计算量实现更高的准确率

主要创新点&#xff1a; 注意力路由器 (Attention Router): 提出了一种新的路由器网络&#xff0c;考虑了专家之间的相关性&#xff0c;从而提高了模型的准确率。高效计算&#xff1a; 使用 MoE 架构&#xff0c;40B 总参数中仅有 3.7B 激活参数&#xff0c;训练计算消耗仅为同…

Python_ 爬楼梯

假设小明爬楼梯&#xff0c;要爬10层&#xff0c;每次他爬1层或者2层。爬完10层他有几种爬法。 第一层1种&#xff0c;1 第二层2种&#xff0c;2 第三层3种 111 12 21 第四层5种 1111 112 121 211 22 …

大模型创新企业集结!百度智能云千帆AI加速器Demo Day启动

新一轮技术革命风暴席卷而来&#xff0c;为创业带来源源不断的创新动力。过去一年&#xff0c;在金融、制造、交通、政务等领域&#xff0c;大模型正从理论到落地应用&#xff0c;逐步改变着行业的运作模式&#xff0c;成为推动行业创新和转型的关键力量。 针对生态伙伴、创业…