Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
advanced-java
提交
87918df8
A
advanced-java
项目概览
wushizhenking
/
advanced-java
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
advanced-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
87918df8
编写于
10月 06, 2018
作者:
Y
yanglbme
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update mq-interview.md
上级
77d48725
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
14 deletion
+11
-14
docs/high-concurrency/mq-interview.md
docs/high-concurrency/mq-interview.md
+11
-14
未找到文件。
docs/high-concurrency/mq-interview.md
浏览文件 @
87918df8
## 消息队列面试场景
## 消息队列面试场景
**面试官**
:你好
**面试官**
:你好
。
**候选人**
:你好
**候选人**
:你好
。
大家寒暄一下......
(面试官在你的简历上面看到了,呦,有个亮点,你在项目里用过
`MQ`
,比如说你用过
`ActiveMQ`
)
(面试官在你的简历上面看到了,呦,有个亮点,你在项目里用过 MQ,比如说你用过
`ActiveMQ`
)
**面试官**
:你在系统里用过消息队列吗?(面试官在随和的语气中展开了面试)
**面试官**
:你在系统里用过消息队列吗?(面试官在随和的语气中展开了面试)
...
@@ -15,13 +13,12 @@
...
@@ -15,13 +13,12 @@
**面试官**
:那你说一下你们在项目里是怎么用消息队列的?
**面试官**
:那你说一下你们在项目里是怎么用消息队列的?
**候选人**
:巴拉巴拉,“我们啥啥系统发送个啥啥消息到队列,别的系统来消费啥啥的。比如我们有个订单系统,订单系统会每次下一个新的订单的时候,就会发送时一条消息到
`ActiveMQ`
里面去,后台有个库存系统负责获取了消息然后更新库存。”
**候选人**
:巴拉巴拉,“我们啥啥系统发送个啥啥消息到队列,别的系统来消费啥啥的。比如我们有个订单系统,订单系统会每次下一个新的订单的时候,就会发送时一条消息到
`ActiveMQ`
里面去,后台有个库存系统负责获取了消息然后更新库存。”
```
部分同学在这里会进入一个误区,就是你仅仅就是知道以及回答你们是怎么用这个消息队列的,用这个消息队列来干了个什么事情?
(部分同学在这里会进入一个误区,就是你仅仅就是知道以及回答你们是怎么用这个消息队列的,用这个消息队列来干了个什么事情?)
```
**面试官**
:那你们为什么使用消息队列啊?你的订单系统不发送消息到
`MQ`
,直接订单系统调用库存系统一个接口,咔嚓一下,直接就调用成功,库存不也就更新了。
**面试官**
:那你们为什么使用消息队列啊?你的订单系统不发送消息到
`MQ`
,直接订单系统调用库存系统一个接口,咔嚓一下,直接就调用成功,库存不也就更新了。
**候选人**
:额。。。(楞了一下,为什么?我没怎么仔细想过啊,老大让用就用了),硬着头皮胡言乱语了几句
**候选人**
:额。。。(楞了一下,为什么?我没怎么仔细想过啊,老大让用就用了),硬着头皮胡言乱语了几句
。
(面试官此时听你楞了一下,然后听你胡言乱语了几句,开始心里觉得有点儿那什么了,怀疑你之前就压根儿没思考过这问题)
(面试官此时听你楞了一下,然后听你胡言乱语了几句,开始心里觉得有点儿那什么了,怀疑你之前就压根儿没思考过这问题)
...
@@ -33,21 +30,21 @@
...
@@ -33,21 +30,21 @@
(面试官此时心里已经更觉得你这哥儿们不行,平时都没什么思考)
(面试官此时心里已经更觉得你这哥儿们不行,平时都没什么思考)
**面试官**
:
Kafka、ActiveMQ、RabbitMQ、RocketMQ
都有什么区别?
**面试官**
:
`Kafka`
、
`ActiveMQ`
、
`RabbitMQ`
、
`RocketMQ`
都有什么区别?
(面试官问你这个问题,就是说,绕过比较虚的话题,直接看看你对各种
`MQ`
中间件是否了解,是否做过功课,是否做过调研)
(面试官问你这个问题,就是说,绕过比较虚的话题,直接看看你对各种
`MQ`
中间件是否了解,是否做过功课,是否做过调研)
**候选人**
:我们就用过
activemq
,所以别的没用过。。。区别,也不太清楚。。。
**候选人**
:我们就用过
`ActiveMQ`
,所以别的没用过。。。区别,也不太清楚。。。
(面试官此时却是觉得你这哥儿们平时就是瞎用,根本就没什么思考,觉得不行)
(面试官此时却是觉得你这哥儿们平时就是瞎用,根本就没什么思考,觉得不行)
**面试官**
:那你们是如何保证消息队列的高可用啊?
**面试官**
:那你们是如何保证消息队列的高可用啊?
**候选人**
:这个。。。我平时就是简单走
api
调用一下,不太清楚消息队列怎么部署的。。。
**候选人**
:这个。。。我平时就是简单走
API
调用一下,不太清楚消息队列怎么部署的。。。
**面试官**
:如何保证消息不被重复消费啊?如何保证消费的时候是幂等的啊?
**面试官**
:如何保证消息不被重复消费啊?如何保证消费的时候是幂等的啊?
**候选人**
:啥?(
`MQ`
不就是写入
和
消费就可以了,哪来这么多问题)
**候选人**
:啥?(
`MQ`
不就是写入
&
消费就可以了,哪来这么多问题)
**面试官**
:如何保证消息的可靠性传输啊?要是消息丢失了怎么办啊?
**面试官**
:如何保证消息的可靠性传输啊?要是消息丢失了怎么办啊?
...
@@ -67,6 +64,6 @@
...
@@ -67,6 +64,6 @@
---
---
这是面试官的一种面试风格,就是面试官的问题不是发散的,而是从一个小点慢慢铺开。比如说面试官
会可能跟你聊聊高并发话题,就这个话题里面跟你聊聊缓存、MQ 等等东西,由浅入深,一步步深挖
。
这是面试官的一种面试风格,就是面试官的问题不是发散的,而是从一个小点慢慢铺开。比如说面试官
可能会跟你聊聊高并发话题,就这个话题里面跟你聊聊缓存、
`MQ`
等等东西,
**由浅入深,一步步深挖**
。
其实上面是一个非常典型的关于消息队列的技术考察过程,好的面试官一定是从你做过的某一个点切入,然后层层展开深入考察,一个接一个问,直到把这个技术点刨根问底,问到最底层。
其实上面是一个非常典型的关于消息队列的技术考察过程,好的面试官一定是从你做过的某一个点切入,然后层层展开深入考察,一个接一个问,直到把这个技术点刨根问底,问到最底层。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录