美团一面

发面经攒运气

实习拷打
说说泛型
hash map
红黑树什么时候转
为什么用红黑树,对比二叉树?平衡二叉树?
jvm为什么分多个代
jvm怎么判断垃圾回收
MySQL索引最左匹配原则
手撕类型转换
全部评论
佬是日常么
点赞 回复 分享
发布于 2024-09-13 16:32 江苏
佬,类型转换是力扣上的题吗?
点赞 回复 分享
发布于 2024-09-06 09:46 辽宁
约二面了吗?
点赞 回复 分享
发布于 2024-09-04 17:19 北京
佬一面时间多长
点赞 回复 分享
发布于 2024-09-03 18:09 江西

相关推荐

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模式。 理解这些方案的优缺点,能帮助你在架构设计时做出合理选择。
点赞 评论 收藏
分享
⌚️投递时间:2024.8月底Day0投递第三志愿Day1约一面Day2一面➕约二面Day3二面➕约三面Day5三面👋一面:【深挖实习经历】1.自我介绍2.本科研究生间的gap在做什么3.未来的职业规划4.互联网实习深挖5.最有收获的实习经历(我说的是咨询公司)追问:在这段实习中怎么做的数据分析追问:介绍你写过的咨询报告的框架追问:这个框架是自己想的还是谁教给你的追问:有没有你自己发挥想法做的部分追问:介绍社媒聆听方法论(因为我提到了)6.快消实习深挖追问:除了做销售数据报表还会做什么?追问:有没有哪些部分是你独立负责的?7.说说自己的三个优点三个缺点,性格8.你提到自己想做中后台,做脑力担当,为什么?9.就业城市选择相关10.研二课程安排+提前实习相关11.反问这个岗位具体工作内容(销售策略制定/到一线走访/数据分析等,偏后台,策略运营,不会涉及销售指标达成)🤏二面:【看重思考能力】1.基于上一轮面试,谈谈对这个岗位的理解2.本科毕业到读研期间的gap在做什么3.为什么从体制内辞职考研,怎么考虑4.除了考研外,当时没考虑过直接找工作吗5.新工作和考研之间如何抉择的?6.你对岗位行业的定性判断是基于什么做出的?你在做决策时,有多大比例会听别人的意见?这些意见一般来自什么渠道?7.选择实习的时候是如何考虑的?为什么从外企转互联网了?8.请评价一下你呆过的两家互联网公司(这里有一个点踩坑了,我说某家公司产品链路不够成熟导致业务推进效率较低,面试官说在互联网都差不多,不可能等着技术资源成熟了再去做)9.反问基于行业经验和背景的不同,新人如何跟一线销售人员高效沟通?面试官提及的深入一线调研具体包括哪些形式,和咨询公司的访谈类似吗?✌️三面:【看中规划】1. 对岗位的理解2.之前做的实习是市场营销,第一志愿也是市场营销,第三志愿才是销运,从兴趣角度你自己是怎么想的?3. 经过前两轮的面试,你的理解当中,这个岗位日常的工作是什么样的呢?4.你提到对这个行业的了解,是自己有主动搜索过吗?5. 过去的那么多段实习当中,在工作内容或者氛围上有没有你觉得你比较欣赏的部分?6. 那有没有你觉得比较雷的,会想要避坑的部分?7. 小红书账号还在运营吗?如果到时候工作比较忙,没有时间兼顾账号,会不会觉得接受不了?8. 这个岗位可能会涉及到一些不定期的短期出差,可能要到某一个城市待一到两个星期,或者说待几天,这个可以接受吗?9.目前这段实习打算什么时候结束,后续几个月的计划?10. 市场营销的工作会有非常fancy的那个部分,为什么转运营,怎么考虑的?11.反问团队架构、培养晋升机制💔很可惜横向挂了,hr解释因为组里实习转正占用名额,但是反馈我的面评很好,后续捞的可能性很大(确实后来被更加匹配的业务方向捞了且给了ssp,后续更面经) #我的OC时间线#  #牛客在线求职答疑中心#  #非技术面试记录#  #我的工作日记#  #牛客解忧铺# #牛客AI配图神器#
点赞 评论 收藏
分享
评论
2
15
分享

创作者周榜

更多
牛客网
牛客企业服务