作业帮一面面经

昨天晚上面的,已过,明天晚上二面,直接上干货。
1.实习项目,怎么架构的,技术栈
2.死磕mysql,从数据类型,引擎,索引,事务隔离级别怼到主从复制,读写分离
3.死磕网络,请求全过程,从上到下很细,涉及各层网络协议,三握四挥,https,tcp可靠算法,拥塞阻塞等,幸好自己是学网络的不然感觉招架不住
4.聊聊八大排序,时间空间复杂度,稳定性,最快的,说下快排
5.01背包,动态规划
6.nginx的进程模型,就是磕epoll poll select这些
7.死磕redis,5个基本类型的底层实战和使用场景
8.磕了磕微服务的治理,zookeeper原理

有点答的不是很好,比如动态规划和epoll这些,暴露出一些盲区,面试官评价深度还是有欠缺,不过还是过了,看明晚二面吧

作业帮是php技术栈,所以基本不会问语言,都是后端的底层知识,数据库,网络,redis这些#作业帮##面经##校招##PHP工程师#
全部评论
什么鬼,这是面了几个小时,问了一圈。
点赞 回复 分享
发布于 2019-07-26 19:31
校招这么难
点赞 回复 分享
发布于 2019-07-26 19:28
01背包这些都是写代码吗
点赞 回复 分享
发布于 2019-07-26 17:51
老哥,你什么时候投的简历呢
点赞 回复 分享
发布于 2019-07-25 10:51
一共几面呢,请问一面过了之后,需要点击“确认参加”后,hr才会联系你吗
点赞 回复 分享
发布于 2019-07-24 19:13
请问,数据库数据类型都问了什么?
点赞 回复 分享
发布于 2019-07-24 18:13
你怎么啥都会?
点赞 回复 分享
发布于 2019-07-24 17:57
老哥的数据库怎么学
点赞 回复 分享
发布于 2019-07-24 16:27
老哥过了666
点赞 回复 分享
发布于 2019-07-24 16:15
这是什么岗位哦,有网络,还有大数据平台的
点赞 回复 分享
发布于 2019-07-24 15:48
我都不敢投作业帮,这些都不太会,一问就死,学习网络楼主有什么好的建议吗,网络很弱😂
点赞 回复 分享
发布于 2019-07-24 15:07
好难啊😓
点赞 回复 分享
发布于 2019-07-24 13:04

相关推荐

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模式。 理解这些方案的优缺点,能帮助你在架构设计时做出合理选择。
点赞 评论 收藏
分享
评论
5
64
分享

创作者周榜

更多
牛客网
牛客企业服务