mirror of
https://github.com/doocs/advanced-java.git
synced 2026-08-22 11:03:28 +08:00
docs: update doc description
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
## 面试题
|
||||
如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?
|
||||
如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
|
||||
|
||||
## 面试官心理分析
|
||||
其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你**使用消息队列如何保证幂等性**,这个是你架构里要考虑的一个问题。
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
**面试官**:那你说说用消息队列都有什么优点和缺点?
|
||||
|
||||
(面试官此时心里想的是,你的 `MQ` 在项目里为啥要用?你没考虑过,那我稍微简单点儿,我问问你消息队列你之前有没有考虑过如果用的话,优点和缺点分别是啥?)
|
||||
(面试官此时心里想的是,你的 `MQ` 在项目里为啥要用,你没怎么考虑过,那我稍微简单点儿,我问问你消息队列你之前有没有考虑过如果用的话,优点和缺点分别是啥?)
|
||||
|
||||
**候选人**:这个。。。(确实平时没怎么考虑过这个问题啊。。。胡言乱语了)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
**候选人**:我们就用过 `ActiveMQ`,所以别的没用过。。。区别,也不太清楚。。。
|
||||
|
||||
(面试官此时却是觉得你这哥儿们平时就是瞎用,根本就没什么思考,觉得不行)
|
||||
(面试官此时更是觉得你这哥儿们平时就是瞎用,根本就没什么思考,觉得不行)
|
||||
|
||||
**面试官**:那你们是如何保证消息队列的高可用啊?
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
**面试官**:那如何保证消息的顺序性?
|
||||
|
||||
**候选人**:顺序性?什么意思?我为什么要保证消息的顺序性?
|
||||
**候选人**:顺序性?什么意思?我为什么要保证消息的顺序性?它不是本来就有顺序吗?
|
||||
|
||||
**面试官**:如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
|
||||
|
||||
@@ -64,6 +64,6 @@
|
||||
|
||||
---
|
||||
|
||||
这是面试官的一种面试风格,就是面试官的问题不是发散的,而是从一个小点慢慢铺开。比如说面试官可能会跟你聊聊高并发话题,就这个话题里面跟你聊聊缓存、`MQ` 等等东西,**由浅入深,一步步深挖**。
|
||||
这其实是面试官的一种面试风格,就是说面试官的问题不是发散的,而是从一个小点慢慢铺开。比如说面试官可能会跟你聊聊高并发话题,就这个话题里面跟你聊聊缓存、`MQ` 等等东西,**由浅入深,一步步深挖**。
|
||||
|
||||
其实上面是一个非常典型的关于消息队列的技术考察过程,好的面试官一定是从你做过的某一个点切入,然后层层展开深入考察,一个接一个问,直到把这个技术点刨根问底,问到最底层。
|
||||
Reference in New Issue
Block a user