小天才Java架构方向面试(1)

小天才
一面
纯八股,不写
就问了我方向是业务开发还是架构,我就说我偏喜欢架构一点。
然后就说那你等着二面吧,我给你推倒架构组去。

二面
你对网关有比较多的了解,请问网关中的限流算法有哪些?
你用的就是springcloudgateway对吗,如果说我现在只是一个单纯的spring项目,你要如何实现一个限流功能呢?
你说你会使用redis存储令牌,那么你是如何设计这样子的一个过程呢?详细说说
说一说spring中用到的设计模式
说说spring中除了单例还有什么级别的?(request、session、global、prototype)
你说到了单例模式,那么我现在有一个controller是单例的,其中通过@autowired了一个request级别的bean对象,请问这个项目启动的时候是否会报错?
既然会报错,那么是为什么?
(因为request级别只有request来的时候才有,那么创建单例的时候没有request,自然依赖注入失败)
那么如何解决这个问题?
(postconstruct、applicationaware)
你说你用过applicationaware,你是在什么场景使用的?
(我提到了我的自研网关项目)
你们一般是如何解决分布式事务问题的?
你用到了mq,那么我们现在有一个自研的mq,我们mq中有两条消息,第一条消息更新mysql如果失败了,我们会把消息放入到队列后面,然后让第二条消息继续去更新mysql,然后第一条也会再次更新,那么此时就会出现了一个数据不一致的问题,丢失修改问题,因为第一条的数据变到了第二条的后面,你如何解决这个问题?
(一开始听错了,以为是设计整个流程,我就说考虑用rocketmq那种offset的机制,保证at least once的消费,如果说第一条消费失败,那么offset不变,继续消费第一条消息直到成功)
你听错我意思了,你只需要解决这两条消息的一个消费顺序的问题,也就是如果第一条在第二条消息后面,你怎么办?
(我说简单的可以考虑在数据库加一个字段,用于存储消息的id)
他说,那么这个id你要怎么生成?
(我说可以考虑直接用时间戳这些)
他说集群项目要是时间戳重复了怎么办?
(我说可以考虑雪花算法等)

剩下一半看我主页,问题太多了哈哈。
全部评论
楼主,你的这些问题只是一轮技术面吧,后面还有其他的问题么
1 回复 分享
发布于 2024-04-24 19:58 云南
我一面面的你这个的二面,过了。我二面面的部门领导,寄了。让我设计微信点赞评论等功能,然后还和我聊DDD,我不太懂。
点赞 回复 分享
发布于 2023-11-10 07:22 湖南
太难了吧
点赞 回复 分享
发布于 2023-11-07 09:38 福建

相关推荐

05-09 15:21
门头沟学院 Java
- 在Java中,为什么String类要被final修饰?- ArrayList和LinkedList有什么区别?- 如何让ArrayList变成线程安全?- 你提到的`CopyOnWriteArrayList`的内部实现了解吗?- HashMap为什么线程不安全?多线程使用HashMap会导致哪些问题?(分为hash冲突以及不冲突两种情况)- ConcurrentHashMap如何解决多线程带来的问题?- 为什么不使用HashTable而是ConcurrentHashMap- HashTable与ConcurrentHashMap在性能上的区别是什么?- HashTable与ConcurrentHashMap在多线程性能上的区别是什么?- HashMap的默认负载因子是多少?为什么默认是0.75?- HashMap在什么情况时会转为红黑树?小于该值会不会转回链表?- 深拷贝和浅拷贝的区别是什么?如何实现这两种拷贝?- Java的反射机制为什么性能比直接调用慢?- 用Lambda表达式将List转为Map时,如何处理Key冲突(保留较大的Value)?- 如何用Lambda表达式将List转为Map,使相同Key的Value合并为List?- java中有两种动态代理,你能说一下是哪两种吗- error跟exception的区别- Java中有哪些实现锁的方式?- synchronized的锁升级过程是怎样的?- Lock类相比synchronized有哪些优势?- Spring Security的用户信息上下文存储在哪- ThreadLocal的原理是什么?实际应用场景除了保存登录信息有哪些?- volatile关键字的作用是什么?- 线程池参数如何设置(IO密集型任务,8核CPU)?- 线程工厂(ThreadFactory)的作用是什么?- 线程池去执行一个多线程任务的时候,有哪些提交方式- CountDownLatch若某个线程异常未调用`countDown()`,如何避免主线程阻塞?- G1垃圾回收器的工作原理是什么?- 双亲委派机制- Tomcat为什么打破双亲委派机制?- 联合索引(A,B)中,仅用B字段查询能否命中索引?- 索引下推优化在何种查询条件下会触发?- 对日期字段(包含时分秒)建立索引后,使用`BETWEEN`且格式化为年月日查询,能否命中索引?- Spring如何解决循环依赖?能否解决构造器注入的循环依赖,为什么不能?- MyBatis中`#{}`和`${}`的区别是什么?两者的生成SQL是否相同?- 扫码登录的完整流程是如何设计的(前后端协作)?- lua脚本中具体使用的命令
点赞 评论 收藏
分享
评论
5
26
分享

创作者周榜

更多
牛客网
牛客企业服务