阿星不是程序员 level
获赞
146
粉丝
189
关注
1
看过 TA
3186
北京邮电大学
2015
Java
IP属地:北京
分享技术给有需要的小伙伴们
私信
关注
阳光明媚的日子里:割韭菜去xhs割啊,你也想像带篮子和小浪那样被追着喷吗
0 点赞 评论 收藏
分享
问题1:为什么会使用分库分表,到达了什么样的数据级别才会去加设计,是否对数据量有一个统计我的理解:看星哥之前写过 单表行数超 500 万行或者单表容量超过 2GB,推荐分库分表,但是面试的过程中怕被问自己写的项目会有这么大的数据量吗不要这么硬背,具体情况具体分析,有的表字段少,经常是条件等值查询,这样加个索引,一个亿也不用分表,有的字段多,还是范围查询,可能5000万就得分表,面试官问你你说是自己在学习分库分表应用到项目中,自己造了几千万的数据量问题2:基因法需要分表的一个数量和确定的一个东西(我的理解是分表的依据,例如大麦中是订单编号和用户id),但是正常的生产环境中是可能动态改变的,比如说需要动态扩容的话,怎么解决呢(例如当前有4个分表,但是现在需要扩充到8个分表),是使用双写吗?这个在扩容前就要考虑好能维持多少年内不需要再扩容。转转架构师在分库分表前,通过之前记录的数据增长量,做了256张表,能在7年内不需要再扩容,如果需要扩容的话,可以使用双写,新扩容表写的过程中,用新的分库分表算法问题3:如果在防止超卖的过程中,Redis不可用了,怎么解决我的理解:使用Redis集群和主从复制吗?因为Redis宕机的话数据库的数据也不能保证是最新的版本,所以得尽量保证Redis不宕机?肯定要使用redis集群模式,但可能会有主从延迟,导致从节点数据不是最新的,但关系不大。可以在用户生成订单后,修改数据库的座位和库存,然后用户支付后,再改数据库的座位和库存,每一步都做好验证。这样从节点的数据问题会降到最低。问题4:如果在当前的幂等验证逻辑中,有一个消息所对应的幂等标识符是不存在的,按照现有的逻辑是可以执行的,但是幂等验证之后的业务系统异常了,这个时候应该怎么处理呢(即通过了幂等的验证,但是后面的服务down掉了,比如说下游抛了一个异常出来)【没太明白应该回答什么,是指需要将幂等标识符重新进行设置吗】异常了就异常了呗,把这个请求的标识从redis中删除了,就像分布式锁时,业务异常也要执行解锁一样,让下一个请求进来正常执行,然后设置好标识位问题5:本地缓存为什么使用Caffine呢,为啥不用Guava因为caffine的性能要远高于Guava,没有其他复杂原因我的理解:查了下Caffine就是Guava改进而来的,可以这么说吗- Caffine在读写操作方面的性能更高,是基于异步的操作,将淘汰过期操作与读写进行分离- Caffine采用了一种结合 LRU、LFU的算法W-TinyLFU+,具有高命中率,低内存占用的特点
查看5道真题和解析
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
2024-12-03 09:59
北京邮电大学 Java
0 点赞 评论 收藏
分享
2024-12-03 09:49
北京邮电大学 Java
咩咩子_:写轮子能搞懂的话确实挺不错的,之前面字节2面的时候 从rpc 自定义协议 动态代理 cglib proxy ASM 后面还问到arthas的trace实现思路,后面io模式,多路复用,到linux的select poll epoll真的问穿了。感觉能搞懂,就写,硬控面试官10多分钟,搞不懂别写,不然被问到铁凉凉
0 点赞 评论 收藏
分享
2024-10-24 10:09
北京邮电大学 Java
整场面试都是对简历上的内容进行360度的拷打!总结起来就是细节!包括业务的细节、技术的细节。八股文问的也不少,底层原理也有,现在对学生的要求也不低啊面试的问题:- Java集合都有哪些?最熟悉的有哪些?- 在使用HashMap时,用自定义对象当做key,有什么问题?- 如何遍历HashMap- Spring的AOP原理,你提到了项目中也使用到了,具体是怎么用的?有什么问题?- Spring的事务传播行为都有哪些?a事务调用b事务时,是在同一个事务中吗?- 用过的设计模式都有哪些,项目中如何用的,单例模式的双重检查锁好在哪里?- service注解与compomnet注解与有什么区别,可以将service注解换成compomnet注解吗- Spring中的生命周期是什么样的?- SpringBoot的异常要怎么处理?- Redis的创建结构都有哪些?你是如何使用的?- 项目中分库分表是如何设计的?- 项目中缓存雪崩和缓存穿透问题的解决?- 线程池的运行流程,实际中怎么用的?- 分布式锁是什么?如何设计?直接用Redis的setnx可以吗?你是怎么做的?这位兄弟在去面试前也是找我做了下模拟,我告诉他重点:面试时不能光回答八股文,八股文永远只是理论!你回答的再好,人家面试官也是觉得你理论不错而已。所以好的回答一定是理论+实践!这哥们已经将大麦项目的亮点和复杂的解决方案学了有80%了,有了实践的底气了。所以我让他回答完八股文后要和面试官说,我在项目中用到了这个技术,提高了多少的效率。并且还要说出项目中的设计细节,就比如在说设计分布锁时的事务并发问题。面试后告诉我感觉自己还可以,一些细节还需要再接着打磨。如果对大麦项目感兴趣,直接在gitee上搜索 大麦 即可。
0 点赞 评论 收藏
分享
2024-10-21 09:50
北京邮电大学 Java
在快手之前的面试时回答的节奏和内容都不太好,面试官问什么就回答什么,八股文理论说完也就完了,没什么主动性(很多人都有这个问题)。后来我让他把八股文和大麦项目结合起来去回答,不要被面试官牵着鼻子走,在简历中体现出大麦项目的亮点以及回答八股文时也要按照我的套路去和面试官聊,在八股文中穿插着项目去回答。最关键是要把项目亮点主动讲出来,不要傻等着面试官来问!快手面试题:1. 线程池的执行流程以及注意事项2. SpringBoot的自动装配原理,项目中如何应用的3. 在查询演唱会时是怎么使用Redis的、都用到了哪些数据结构3. 项目中怎么解决缓存穿透、击穿、雪崩的4. 缓存和数据库一致性问题怎么处理的5. 项目中是怎么集中管理Redis的key6. ThreadLocal的执行原理、内存泄露怎么解决、如何解决跨线程传递数据7. synchronized加锁与ReentrantLock加锁有什么区别,项目中用的ReentrantLock是做了什么8. 延迟队列怎么设计的?有持久化机制吗9. 项目中都用SpringCloud的哪些组件,怎么去扩展的10. 项目中都用到了哪些设计模式,解决了什么问题11. SpringBoot的注解都用到了哪些12. 项目登录业务的执行流程,携带的token、jwt都存在了哪里,怎么去得到用户信息13. 如何评价自己,有什么优势面试结果还不错,一面已经拿下,目前在复习算法和继续学习大麦项目。大麦项目已经进行了开源,如果你也有兴趣,直接在gitee上搜索 大麦 即可。
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务