百度提前批一面(已凉,共享中)20220721

  • 集合常用哪些,底层实现
  • 自己写的类放入HashMap需要注意什么
  • Java中的锁
  • synchronize锁成员方法,两个实例调用方***不会阻塞
  • AQS
  • 公平锁与非公平锁是怎么实现的
  • 线程的各种状态、各种方法如何转换
  • sleep()与wait()区别,会不会释放执行权
  • JDK四种线程池以及创建线程池的参数,线程池机制
  • 线程池怎么接收返回值
  • FutureTask get()如果结果没返回会怎样,怎么打破阻塞
  • 等待多个FutureTask返回结果提交给上游,怎么处理(说了CountDownLatch后还接着问)
  • List存储这些结果会怎样
  • Myabtis的Mapper如何放入Spring容器的
  • IOC容器中加载bean有几种方式
  • Spring中事务的实现原理
  • a方法有transactional注解,b方法也有,a调用b,b的transactional会生效吗
  • 项目中登陆的状态是如何实现的
  • 数据库ACID如何实现的
  • 数据库隔离级别
  • 为什么会发生脏读
  • 为什么read committed不会脏读
  • 代码,手写HashMap的put、get、size方法
    面试官好多问题都问的都模棱两可,还戴个口罩也听不清,官网已经共享中了,妥妥的kpi面
#百度面经##提前批#
全部评论
你好我想问一下 a调用b那个 会生效么 是不是要判断是不是类内调用啊
2 回复 分享
发布于 2022-07-21 22:53
老哥面玩多久状态变了
2 回复 分享
发布于 2022-07-21 21:51
老哥问一下你是哪个部门呀,base是哪呢,谢谢!
1 回复 分享
发布于 2022-07-22 10:01
倒数第三个问题,读未提交并没有解决脏读吧……
1 回复 分享
发布于 2022-07-21 22:12
我二面挂了,问了我好多Linux指令,还有些sql语句,甚至问我计网掩码,redis设置密码指令
4 回复 分享
发布于 2022-07-21 22:03
老哥你是不是简历写的太牛逼了,这问题感觉是冲着ssp去的
2 回复 分享
发布于 2022-07-23 16:43
你这边边角角问的太频了吧,有点恶心。
2 回复 分享
发布于 2022-07-23 16:11
同学,考虑下地平线?提前批免笔试,极速流程不养鱼。
点赞 回复 分享
发布于 2022-07-30 09:55
看猿辅导的机会吗 可以把简历发我邮箱 xialipeng@yuanfudao.com
点赞 回复 分享
发布于 2022-07-28 12:57
老哥,没关系,继续加油!荣耀也可以投一下呀,已经是秋招正式批了。内推码:yuhvad 网址https://career.hihonor.com/SU60eea919bef57c1023f6fe78/pb/school.html祝你好运
点赞 回复 分享
发布于 2022-07-28 09:04
请问List存储Future返回的结果会怎么样,这一题怎么回答啊
点赞 回复 分享
发布于 2022-07-25 16:42
【zoom秋招内推 杭州|苏州|合肥】 2023届校园招聘项目(7月20日启动,网申截止9月28日) https://dwz.cn/EeMUiCTu
点赞 回复 分享
发布于 2022-07-25 12:16
一般不会是kpi面,面试官也很忙,不会故意浪费大家的时间,只不过遇到比你更优秀的了而已。
点赞 回复 分享
发布于 2022-07-24 21:47
啥是KPI面 我面的也感觉好多不会的 感觉是我自己菜。。 哎
点赞 回复 分享
发布于 2022-07-24 19:12
我也是哈哈哈😂
点赞 回复 分享
发布于 2022-07-24 17:46
百度配不上大哥的排面
点赞 回复 分享
发布于 2022-07-24 17:03
请问synchronize锁成员方法那题是什么意思呀?
点赞 回复 分享
发布于 2022-07-24 14:35
提前批会影响秋招吗
点赞 回复 分享
发布于 2022-07-24 11:56
老哥面试是邮箱通知的吗?我官网进度是面试 但是没收到任何电话短信通知。。。
点赞 回复 分享
发布于 2022-07-24 09:56
19号面的一面,现在官网显示还在面试中,请问这个还有希望吗😥
点赞 回复 分享
发布于 2022-07-24 09:49

相关推荐

04-25 00:54
门头沟学院 Java
在分布式系统中,事务需要跨多个服务或数据库执行,传统的ACID事务(单机数据库事务)无法直接适用,因此需要**分布式事务**机制来保证数据一致性。以下是分布式事务的核心概念、挑战及主流解决方案。---##**# deepseek#1. 什么是分布式事务?****定义**:分布式事务是指事务的参与者(如多个微服务、数据库、消息队列等)分布在不同的节点上,需要协调这些节点共同完成一个全局事务,保证所有操作要么全部成功,要么全部失败。### **典型场景**- **跨行转账**:A银行扣款,B银行加款。- **订单支付**:扣减库存 + 创建订单 + 支付。- **跨服务调用**:用户注册(用户服务 + 积分服务)。---## **2. 分布式事务的挑战(CAP理论)**在分布式系统中,无法同时满足 **CAP**(一致性 Consistency、可用性 Availability、分区容错性 Partition Tolerance)三个特性,必须权衡取舍:| **特性**       | **说明**                                                                 ||----------------|-------------------------------------------------------------------------|| **一致性 (C)** | 所有节点在同一时间的数据完全一致(强一致性)。                           || **可用性 (A)** | 每个请求都能得到响应(不保证最新数据)。                                 || **分区容错 (P)** | 系统在部分节点故障时仍能继续运行(分布式系统必须满足)。                 |**结论**:- **CP系统**(如ZooKeeper):保证一致性,牺牲可用性(如选举期间不可用)。- **AP系统**(如Cassandra):保证可用性,牺牲强一致性(最终一致性)。- **CA系统**(如单机MySQL):不适用于分布式环境(无法容忍网络分区)。---## **3.1 2PC(两阶段提交)****原理**:1. **准备阶段(Prepare)**:协调者询问所有参与者是否可以提交。2. **提交阶段(Commit/Rollback)**:如果所有参与者都同意,则提交;否则回滚。**优点**:- 强一致性(所有节点要么全部提交,要么全部回滚)。  **缺点**:- **同步阻塞**:参与者必须等待协调者决策,性能低。- **单点故障**:协调者宕机会导致事务阻塞。- **数据不一致风险**:第二阶段部分参与者可能未收到提交指令。**适用场景**:- 传统数据库(如XA协议),适用于短事务、低并发场景。---### **3.2 3PC(三阶段提交)****改进点**:1. **CanCommit**(询问阶段):检查参与者是否可执行事务。2. **PreCommit**(预提交):锁定资源,但不提交。3. **DoCommit**(最终提交):确认提交或回滚。**优点**:- 减少阻塞时间(相比2PC)。  **缺点**:- 仍然存在单点故障问题。- 实现复杂,实际应用较少。---### **3.3 TCC(Try-Confirm-Cancel)****原理**:- **Try**:预留资源(如冻结库存)。- **Confirm**:确认执行(如扣减库存)。- **Cancel**:失败时回滚(如解冻库存)。**优点**:- 无阻塞,适用于高并发。- 最终一致性较好。**缺点**:- 业务侵入性强(需手动实现Try/Confirm/Cancel)。- 需处理空回滚、幂等性问题。**适用场景**:- 金融支付、电商订单等高一致性要求的业务。---### **3.4 Saga模式****原理**:- 将长事务拆分为多个本地事务,每个事务提交后触发下一个事务。- 失败时执行补偿事务(反向操作)。**优点**:- 适用于长事务(如跨服务业务流程)。- 无全局锁,性能较高。**缺点**:- 不保证强一致性(可能出现脏数据)。- 补偿逻辑复杂。**适用场景**:- 订单流程、物流跟踪等最终一致性场景。---### **3.5 本地消息表(异步确保)****原理**:1. 业务数据 + 消息表(同库事务)。2. 定时任务轮询消息表,发送MQ。3. 消费者处理消息,失败重试。**优点**:- 实现简单,无额外组件依赖。- 保证最终一致性。**缺点**:- 依赖数据库(可能成为瓶颈)。- 延迟较高。**适用场景**:- 订单状态同步、日志处理等低延迟容忍场景。---### **3.6 最大努力通知****原理**:- 系统A执行本地事务后,异步通知系统B。- 系统B收到后处理,失败则重试(可设置最大重试次数)。**优点**:- 实现简单,适合跨系统调用。**缺点**:- 不保证100%一致性(最终可能人工介入)。**适用场景**:- 支付结果通知、第三方回调等。---## **4. 如何选择合适的方案?**| **方案**       | **一致性** | **性能** | **复杂度** | **适用场景**                     ||----------------|-----------|----------|------------|----------------------------------|| **2PC**        | 强一致    | 低       | 中         | 传统数据库(XA)                 || **TCC**        | 最终一致  | 高       | 高         | 金融、电商支付                   || **Saga**       | 最终一致  | 高       | 中         | 长事务(订单、物流)             || **本地消息表** | 最终一致  | 中       | 低         | 异步任务(库存扣减、日志)       || **最大努力通知**| 弱一致    | 高       | 低         | 跨系统通知(支付回调)           |--- ## **Q1:2PC和TCC的区别?**- **2PC**:数据库层实现,强一致,阻塞式,性能低。- **TCC**:业务层实现,最终一致,非阻塞,性能高。### **Q2:如何避免Saga模式的脏读?**- 采用**业务锁**或**版本号控制**,确保补偿事务正确执行。### **Q3:本地消息表如何保证消息不丢失?**- 消息表和业务数据在同一个事务中插入,确保原子性。- 定时任务 + 重试机制保证消息最终投递。---## **6. 总结**- **强一致性**:2PC(牺牲性能)。- **高并发+最终一致**:TCC、Saga、本地消息表。- **简单可靠**:最大努力通知。**实际应用**:电商系统通常组合使用:- **库存扣减**:TCC/Saga。- **订单支付**:本地消息表 + 异步通知。- **物流跟踪**:Saga模式。 理解这些方案的优缺点,能帮助你在架构设计时做出合理选择。
点赞 评论 收藏
分享
评论
17
122
分享

创作者周榜

更多
牛客网
牛客企业服务