联通在线Java社招面经
2024.9.27 安排了三个人面试,面完之后没结果
- 项目介绍
- 项目提问:8千万数据都存Redis吗,Redis和MySQL的数据有什么关系,Redis冗余存储三份是什么考虑,数据写入时MySQL和Redis是完全一致的吗(时效性影响,不能完全一致)。Redis挂了降级MySQL,1W QPS直接穿透到数据库有什么问题?怎么避免打垮数据库。
- 地理位置计算过程都是MySQL做的吗?性能怎么样
- Redis架构这块,16个节点,S2编码怎么算的?你这个项目最大的难点是什么?(总结。。。)
- 其他有业务比较复杂的项目说说嘛
- 缓存穿透的问题,流量都请求MySQL时,有什么解决方案?(布隆过滤器,限流,快速失败,本地缓存)
- 有什么好的方案解决Redis挂了的问题?(容灾,多活,Redis数据持久化,多级缓存,监控告警)
- 多级缓存的方案说一下,实际项目里怎么用的?
- AOI内存RTree的数据是一启动就加载,Full GC后数据就没了?为什么不能直接在原来的数据结构上更新,需要重新构建一份数据。
- Redis对应的持久化存储是MySQL吗,MySQL什么时候查?
- 应用维度降级是什么?
- 设计题:怎么用zk实现分布式锁?Redis怎么实现?Redis设置分布式锁的过期时间怎么设置合理?(业务操作耗时的1.5倍/2倍)
- 如果锁的过期时间设置过短,达不到效果,怎么解决?(动态调整过期时间,锁续期机制,业务容忍度)
- 系统了解内部RPC框架,统一打印系统日志,在RPC框架上应该怎么实现,包括出参、入参、耗时这些内容。(拦截器、日志记录器、收集入参出参,测量耗时,设计日志格式)
- 鹰眼怎么配置的监控的?
- 普通的Web应用,所有Controller对外的接口的耗时打印出来,这种应该怎么做?(AOP)
- AOP能拦截到出参吗?
- 现在在国企主要做什么工作?开发的多吗,扫主机是部署Agent吗?这个Agent是长时间运行还是运行一次的
- 主链路上,如何做接口的优化,比如从500ms优化到300ms,可以从哪些方面做?(数据库、代码、缓存、网络、多线程、业务逻辑优化)
- 服务的瓶颈怎么查呢?内部的瓶颈?
- 整个链路的耗时怎么排查呢?单个服务怎么排查?(打印内部耗时情况)
- 已经知道服务内部耗时大了,怎么去优化呢?(串行改并行、数据结构优化、减少冗余计算、善用缓存、IO优化、同步改异步)
- 之前对C端的接口有做过优化吗,具体是什么
- 服务部了多少,服务拆分,整个链路是什么样的,服务实例部署是什么样的?
- 服务间是怎么调用的?注册发现?
- 服务发布升级的时候,对数据加载的过程有没有做优化工作,内存RTree的数据变更是怎么做的?
- 数据有8千万,同步到Redis,数据替换的方式是什么样的?每个版本的数据占用多大内存?
- 现在工作中开发时间占比多少
- 反问:做项目还是做产品