APP下载
报价宝  ›  科技  › 

JAVA面试题:你怎么设计一个讯息伫列?

报价宝 来源:baojiabao.com 发布时间:2019-11-17 08:52:00 11月13日更新
报价宝综合消息JAVA面试题:你怎么设计一个讯息伫列?

1 面试题

写一个讯息伫列,你如何进行架构设计,说一下你的思路!

2 考点分析

一般面试官要考察两块:

(1)你有没有对某一个讯息伫列做过较为深入的原理的了解,或者从整体了解把握住一个mq的架构原理

(2)看看你的设计能力,给你一个常见的系统,就是讯息伫列系统,看看你能不能从全域性把握一下整体架构设计,给出一些关键点出来

说实话,一般面类似问题的时候,大部分人基本都会蒙,因为平时从来没有思考过类似的问题,大多数人就是平时埋头用,从来不去思考背后的一些东西。

类似的问题,经常问的还有,如果让你来设计一个spring框架你会怎么做?如果让你来设计一个dubbo框架你会怎么做?如果让你来设计一个mybatis框架你会怎么做?

3 详解

其实回答这类问题,说白了,不求你看过那技术的源代码,起码你大概知道那个技术的基本原理,核心组成部分,基本架构构成,然后参照一些开源的技术把一个系统设计出来的思路说一下就好

比如说这个讯息伫列,我们来从以下几个角度来考虑一下

3.1 支援可伸缩性

需要的时候快速扩容,就可增加吞吐量和容量,那怎么搞?

设计个分散式的系统呗,参照一下kafka的设计理念,broker - topic - partition,每个partition放一个机器,就存一部分资料。如果现在资源不够了,简单啊,给topic增加partition,然后做资料迁移,增加机器,不就可以存放更多资料,提供更高的吞吐量了?

3.2 资料落地

那肯定要了,落磁盘,才能保证别程序挂了资料就丢了。那落磁盘的时候怎么落啊?顺序写,这样就没有磁盘随机读写的定址开销,磁盘顺序读写的效能是很高的,这就是kafka的思路。

3.3 其次你考虑一下你的mq的可用性啊

这个事儿,具体参考我们之前可用性那个环节讲解的kafka的高可用保障机制。多副本 - leader follower - broker挂了重新选举leader即可对外服务。

3.4 支援资料0丢失

可以的,参考我们之前说的那个kafka资料零丢失方案

其实一个mq肯定是很复杂的,面试官问你这个问题,其实是个开放题,他就是看看你有没有从架构角度整体构思和设计的思维以及能力。确实这个问题可以刷掉一大批人,因为大部分人平时不思考这些东西。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 手机价格 笔记本电脑价格 电视机价格 红米手机价格 降噪耳机价格