美文网首页
7. MQ 架构设计

7. MQ 架构设计

作者: 花神子 | 来源:发表于2019-12-23 19:18 被阅读0次

比如说这个消息队列系统,我们从以下几个角度来考虑一下:

  • 首先这个 mq 得支持可伸缩性吧,就是需要的时候快速扩容,就可以增加吞吐量和容量,那怎么搞?设计个分布式的系统呗,参照一下 kafka 的设计理念,broker -> topic -> partition,每个 partition 放一个机器,就存一部分数据。如果现在资源不够了,简单啊,给 topic 增加 partition,然后做数据迁移,增加机器,不就可以存放更多数据,提供更高的吞吐量了?

  • 其次你得考虑一下这个 mq 的数据要不要落地磁盘吧?那肯定要了,落磁盘才能保证别进程挂了数据就丢了。那落磁盘的时候怎么落啊?顺序写,这样就没有磁盘随机读写的寻址开销,磁盘顺序读写的性能是很高的,这就是 kafka 的思路。

  • 其次你考虑一下你的 mq 的可用性啊?这个事儿,具体参考之前可用性那个环节讲解的 kafka 的高可用保障机制。多副本 -> leader & follower -> broker 挂了重新选举 leader 即可对外服务。

  • 能不能支持数据 0 丢失啊?可以的,参考我们之前说的那个 kafka 数据零丢失方案。

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

相关文章

  • 7. MQ 架构设计

    比如说这个消息队列系统,我们从以下几个角度来考虑一下: 首先这个 mq 得支持可伸缩性吧,就是需要的时候快速扩容,...

  • MQ之如何做到消息必达

    一、架构方向 MQ要想尽量消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时、重传、确认 二、MQ...

  • 转: 架构设计:系统间通信——ActiveMQ的安装与使用

    1、前言 之前我们通过两篇文章(架构设计:系统间通信(19)——MQ:消息协议(上)、架构设计:系统间通信(20)...

  • 第七章 RabbitMQ基础架构设计思路

    课程导航 一线大厂的MQ组件实现思路和架构设计方案 基础组件封装设计 - 迅速消息发送 基础组件封装设计 - 确认...

  • mq 高性能和低延迟

    历史 规范 标准openmessaging 消息驱动解耦 mq生态 mp架构领域模型 分布式系统架构 mq高性能低...

  • MQ之如何做到消息幂等

    一、缘起 MQ消息必达,架构上有两个核心设计点: (1)消息落地 (2)消息超时、重传、确认 再次回顾消息总线核心...

  • 微服务架构实战笔记

    为什么MQ 比写DB快,因为MQ99% 都是顺序写,DB 99% 都是随机写。 异步架构中,网关层不用接入MQ是因...

  • 大型网站技术架构——7. 网站的可扩展架构

    [TOC] 7. 网站的可扩展架构 网站的扩展性架构设计:在对现有系统影响最小的情况下,系统功能可持续扩展及提升的...

  • 细数MQ那些不得不说的8大好处

    消息队列(MQ)是目前系统架构中主流方式,在大型系统及大数据中广泛采用。对任何架构或应用来说, MQ都是一个至关重...

  • 分布式消息中间件MQ简单介绍

    关于分布式消息中间件MQ的详细介绍:【分布式架构】分布式消息中间件MQ开发教程 (阿里云消息队列MQ(Messag...

网友评论

      本文标题:7. MQ 架构设计

      本文链接:https://www.haomeiwen.com/subject/kwrtoctx.html