携程0315一面+0320二面(已Offer)
0315携程一面
1、自我介绍
2、介绍一下 RPC 项目
3、服务如何注册以及客户端如何发现
4、介绍一下客户端调用、服务端响应的一个完整流程
5、客户端进行远程调用的时候是每一次都要去访问注册中心进行服务发现吗?
6、获取结果是同步还是异步的(目前做的同步,也可以返回promise由用户自行调用)
7、客户端是否知道什么时候结果已经返回了???
8、介绍下第二个项目,你做了什么工作
9、讲述一下订单业务的整个流程。
10、RabbitMQ发送消息的整个流程。
11、RabbitMQ消息太多导致积压怎么处理(要防止丢失)?
12、订单支付模块用到了事务吗?
13、Spring事务如何实现的?
14、如果有一个新技术,你是怎么考虑融合到你的项目当中的?
GPT回答:
在一般情况下,初步考虑将新技术应用于项目中需要进行以下步骤:
- 确定技术的特点和目标:了解新技术的运行方式、功能、优势和局限性。
- 评估技术与项目的匹配度:分析新技术是否适合项目的需求、成本和时间限制。
- 确定实施计划:确定技术的实施流程、资源需求和可行性评估。
- 实施和测试:对技术进行实施并进行相应测试,根据结果进行调整和优化。
- 持续监测和改进:跟踪技术的表现和发展趋势,在必要时进行更新和改进。
总之,将新技术应用到项目中需要认真考虑和精心计划,提高项目效率和质量。
15、你有什么想问我的?
0320携程二面
1、自我介绍
2、介绍项目中MySQL、Redis和ES如何使用的?
3、为什么选用Redis而不是直接存储在DB中?
4、Redis+Lua脚本进行优惠券资格判断做了什么校验?
5、预减库存如何实现?(Redis的hash结构的 hincrby key filed -1)
6、将消息发送到RabbitMQ失败的情况,如何处理?(可靠传输)
7、RabbitMQ中间过程中消息丢了如何处理?(持久化)
8、线程池的参数以及线程池的原理?
9、线程池的核心线程池的个数怎么设置的?
10、ES如何使用的,怎么存储?(倒排索引)
11、Redis哨兵模式的主从集群的选主机制?
12、ThreadLocal用过吗?原理是什么?
13、子线程可以获取父线程的ThreadLocal的值吗?
14、项目中Redis除了做缓存还应用到了什么场景?
15、项目中Redis+Lua实现防刷限流的原理?
16、maven冲突如何解决?
17、Java使用的版本,有了解最新的Java版本的特性?
18、Java8的垃圾回收器用的是哪个
19、说一下ParallelScavenge?
20、标记整理算法的流程?
21、为什么要用AOP去实现防刷限流?
22、AOP的类型?
23、描述一下快速排序?
24、有没有碰到AOP不生效的情况?(事务调用失效场景)
25、HTTP响应码301、302,哪种对搜索引擎比较友好(301)?
26、TCP和UDP的区别?
27、TCP如何保证可靠传输?
28、TPC的三次握手流程?
29、如果第三次握手失败会发生什么?
30、反问。
#携程##携程面试#