胖乎乎的喜羊羊很想回老家 level
获赞
22
粉丝
8
关注
6
看过 TA
318
门头沟学院
2026
Java
IP属地:四川
暂未填写个人简介
私信
关注
10-22 09:55
门头沟学院 Java
1.自我介绍,找一个项目详细讲讲,主要是技术难点一、MQ1. RocketMQ和Kafka有什么区别?Balabala2.你说RocketMQ比Kafka更可靠?Kafka的可靠性很低吗?这里说Kafka的可靠性机制也很健全,RocketMQ主要在事务消息,解决事务提交而消息发送失败的问题。3.那业务中除了保证生产者发送消息,消费者消费消息可靠外,还有broker层存储消息也应该可靠,Kafka是如何实现的?Balabala4.在业务中可能会面临这个有序性,Kafka和RocketMQ有序性如何保证的?这里说的kafkaRocket呢?它有没有这种机制保证有序性?没有(其实有,一样的概念分区(队列)有序,全局有序性能损耗太大)如果我要保证这个有序性,可以怎么做?单一队列只有一个消费者实例消费(本身就保证了单一队列同一时刻只有一个消费者实例消费)业务中,也需要关注消费者消费的幂等性,这个你了解吗?Balabala还有实际情况下,还要处理消息积压的情景,你有遇到吗?我这里说的没遇到过,就是等?或者扩容实例,人工处理,紧急改代码二、Redis1. Redis为什么快?5.公司Redis都存储什么数据?各种配置信息。热缓存30s   (其实是7-15分钟的随机时间)6.30s,那这里如果要在数据库改配置,那也就得等30s?又围绕这里的数据一致性和可靠性聊了聊三、Jvm你们的垃圾回收器用到什么?G1,默认的(其实不是JDK8默认的)常用的除了G1,还有CMS,这两个有什么区别和共同点?balabala四、数据库分库分表你了解吗?我说DRDS在创建表时,指定分表键、分库建,之后的操作会结果自动聚合分库分表一般都是怎么进行的?哈希、范围什么情况分库、什么情况需要分表,两者什么区别?你们分库分表如何进行的?我说按照id分,32*32如果按照id分,那我之后可能有业务需要通过时间统计,没有分库分表键来说,会去每个表每个库中执行,你能想到什么好的优化方法吗?ADB镜像表mongo没有分库分表,查id,根据id去DRDS查可靠数据你们数据库的事务隔离级别是什么?可重复读可重复读可以解决脏读、幻读问题吗?可以如何解决?锁+MVCCMVCC是什么?这里答得不好,毫无逻辑慢查询如何排查?Explain 看type,rows,主要还是索引索引的数据结构是什么?为什么用B+树?数据库中的锁有表锁、行级锁,如果我要为一个表增加一个字段加什么锁?如果为一个字段加索引加什么锁?五、Java集合框架都有哪些?Map常用?ConcurrentHashMap如何实现线程安全?业务中如何区分,什么情景用到HashMap、什么情景用到ConcurrentHashMapSpringBoot出来的都用SpringBoot,以前都用SpringMVC,SpringBoot好在哪?进行了哪些优化?这里对比不会。说了个注解。注解方便了我们开发,那你知道自动配置、自动装配,我说我没用过SpringMVC,自然不知道两者的优化在哪?但我知道SpringBoot会有自动配置、自动装配、Spinrg AOP、控制反转、依赖注入那你说说自动装配的实现原理?六、微服务SpringCloud框架了解吗?-我简历都没写呀这里我说了服务调用用mq、HSF、openfeign、restful API除了服务调用还有吗?Nacos、zookeeper做负载均衡这两个什么关系?熔断降级了解吗?Sentinel=======10.20 hr面10.21 感谢信
0 点赞 评论 收藏
分享
09-14 11:58
门头沟学院 Java
0 点赞 评论 收藏
分享
06-03 19:56
门头沟学院 Java
建信融通有没有约一面的?到底是不是半结构化面试?附一篇拼多多面经1.使用Redis解决集群模式下的session共享问题,是把session存在Redis里了吗?我说存的是用户信息,不是session2.那你请求传过来的是什么?key是UUID+用户id,3.那你怎么知道传过来什么呢?我说登录后返回一个token,放在请求头的authorization里4.前端是你写的吗?不是5.那你怎么通过redis template获取数据?就是通过redis直接去呀,根据uuid+用户id6.为什么要用随机值?就是加一个校验机制二、分布式锁1.一人一单集群下分布式锁是怎么用的?Key为用户id + 业务名,自定义分布式锁,或者用的是Redisson2.怎么实现的自定义锁,自定义和Redisson有什么区别Setnx,看门狗机制、重入比较难实现,用他封装好的3.看门狗机制解决什么问题?超时释放4.反问能解决超时释放吗?能,说到了判断锁是否被持有5.如何判断锁是否被持有不知道6.都要用 用户id吗?不是,根据业务需求来,如果是库存超卖,那应该是商品id+业务三、Rabbitmq1.我看你第二个项目说用到了rabbitmq,你对几个消息队列的中间件有什么了解,他们有什么区别?说了rabbitmq 和 rocketmq,说了rocket可能更加可靠2.消息队列可靠是什么意思 ?保证消息被消费,消息不丢失3.什么情景 rocketmq能做到,rabbitmq不能做不知道四、Zset1.为什么要用zset,不用其他的数据结构我说压缩列表和跳表2.什么情况下是跳表什么情况下是压缩列表设置  长度  1283,为什么要从压缩列表换成跳表增删的性能4.增删性能好的数据结构很多,为什么用跳表我说相比于链表,跳表可以实现范围查询5.实现范围查询,为什么不用B+树?B+树空间太大五、MySQL1.mysql熟悉吧?还可以2.Mysql都用到了什么锁表级锁、行级锁3.什么情况用表级锁、什么情况用行级锁表结构变化才用表级锁,一般情况只用行级锁4.行级锁又会锁那几行,举例一下不知道5.事务了解吧,都有哪几种事务?开始吟唱6.它们的实现有什么不同?锁和MVCC机制,开始吟唱7.不可重复读是什么问题?开始吟唱8.在开发中,经常用读已提交是为什么?你知道吗?不太依赖事务追求性能六、JVM1.G1 回收器知道吗?2.你了解哪些回收机制?七、计算机网络1.滑动窗口是如何进行拥塞控制的?拥塞窗口:1.慢启动,拥塞窗口从1个报文段开始,每收到一个ACK,指数增长(*2)直到达到慢启动阈值或者发生丢包(超时/重复ack)2.拥塞避免,当拥塞窗口大小大于等于 ssthresh(慢启动阈值),转为线性增长,避免窗口过大导致网络拥塞3.拥塞处理,丢包A.超时,严重拥塞,ssthresh置为 cwnd/2, cwnd(拥塞窗口)置为1,重新慢启动B.重复ack,轻微拥塞,触发快速重传/快速恢复,ssthresh置为cwnd/2,cwnd也减半后线性增长接收窗口:由接收方通过TCP头部通告,表示其剩余缓冲区大小发送窗口 = min(接收窗口,拥塞窗口),发送方在任意时刻可以连续发送但尚未收到确认的数据量,由接收窗口和接收窗口共同决定,确保数据发送既不会导致网络拥塞,也不会超过接收方的处理能力。2.HTTPS对比HTTP为什么是安全的?HTTPS = HTTP+加密+身份认证+完整性保护·加密传输(防窃听),HTTP以明文传输,攻击者可以直接截获通信内容;HHTPS使用SSL/TLS协议对数据进行加密(AES、RSA算法),即使被截获也无法解密·身份验证,HTTP无法验证服务器身份,攻击者可以伪造虚假网站;HTTPS通过数字证书(CA)验证网站的真实性,浏览器会显示锁图标,点击可查看证书信息,若证书无效,会提示警告·数据完整行,HTTP数据在传输中可能被修改(如插入广告或者恶意代码),而HTTPS使用消息认证码(MAC)或者哈希校验,确保数据未被修改。  原理:TLS协议会为数据生成唯一指纹,接收方校验指纹是否匹配。手撕算法1.求链表的公共节点2.合并两个有序链表
查看4道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务