java架构设计专题

谈谈消息队列的设计与实现

2019-10-18  本文已影响0人  先生zeng

定义

消息队列技术是分布式应用间交换信息的一种技术。

应用场景

如图:

image

上图中,搜索时,需要去跟商品还有后台交互,交易时,也需要跟后台交互商品交互。四个模块之间地关联错综复杂,这时候可以借助消息队列去处理。

消息队列模型

image image

模块构成

传统通信协议

设计考虑点

从关注处理到关注通知


image

高级特性如下:

可靠投递

消费确认

重复消息和顺序消息

性能考虑

PUSH 或 PULL

业界产品

  1. RebbitMQ
image
  1. ZeroMQ
image
  1. Apache ActiveMQ
image
  1. Kafka
image
  1. Apache RocketMQ
image

6.NSQ (了解)

image
  1. beanstalkd(了解)
image

应用环境推荐

生产环境推荐

存储模型的区别

RocketMQ存储模型

image

顺序写,随机读。

RocketMQ刷盘策略

支持异步刷盘

    写完PageCache直接返回。
    RocketMQ可配置。
image

写完内存就返回,异步的去刷新Disk。

支持同步刷盘

RocketMQ实现高可用

设计方案

image

RocketMQ 消息可靠性。

推拉

上一篇下一篇

猜你喜欢

热点阅读