美文网首页
浅谈消息队列

浅谈消息队列

作者: hellozepp | 来源:发表于2019-10-07 20:38 被阅读0次

MQ是什么

  • 屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议
  • MQ通过将消息的发送和接收分离来实现应用程序的异步和解偶

市面上的MQ对比

有Broker 重Topic流:kafka,JMS,pulsar
有Broker 轻Topic流: RocketMQ
无Broker: ZeroMQ

更合适的场景

kafka,zeromq,rabbitmq代表了三种完全不同风格的MQ架构;关注点完全不同:

  • kafka在乎的是性能,速度
  • rabbitmq追求的是灵活
  • zeromq追求的是轻量级、分布式,无broker以二方包方式使用,ZeroMQ其实就是一个跨语言的、重量级的Actor模型邮箱库。

AMQP 是啥

生产者发送key和数据,消费者定义订阅的队列,Broker收到数据之后会通过一定的逻辑计算出key对应的队列,然后把数据交给队列。
这种模式下解耦了key和queue,在这种架构中queue是非常轻量级的(在RabbitMQ中它的上限取决于你的内存),消费者关心的只是自己的queue;生产者不必关心数据最终给谁只要指定key就行了,中间的那层映射在AMQP中叫exchange(交换机)。AMQP中有四种种exchange——Direct exchange:key就等于queue;Fanout exchange:无视key,给所有的queue都来一份;Topic exchange:key可以用“宽字符”模糊匹配queue;最后一个厉害了Headers exchange:无视key,通过查看消息的头部元数据来决定发给那个queue(AMQP头部元数据非常丰富而且可以自定义)。这种结构的架构给通讯带来了很大的灵活性,我们能想到的通讯方式都可以用这四种exchange表达出来。如果你需要一个企业数据总线(在乎灵活性)那么RabbitMQ绝对的值得一用。

相关文章

  • 浅谈消息队列

    MQ是什么 屏蔽底层复杂的通讯协议,定义了一套应用层的、更加简单的通讯协议 MQ通过将消息的发送和接收分离来实现应...

  • 浅谈消息队列之RocketMQ

    什么是消息队列? 为什么要用消息队列? 即,应用场景是什么,也就是用了有什么好处 解耦 多应用间通过消息队列对同...

  • 消息队列:消息队列简介

    1. 什么是消息队列 消息队列(message queue),是一种应用程序的通信方法; 消息队列是 生产者-消费...

  • 消息中间件

    消息中间件,也可以叫做中央消息队列或者是消息队列(区别于本地消息队列,本地消息队列指的是 JVM 内实现的队列实现...

  • 消息队列对比

    引用: 常用消息队列对比消息队列及常见消息队列介绍 常用消息队列 1. RabbitMQ 用erlang语言开发的...

  • 消息队列应用-使用异步队列就解耦了吗

    消息队列作用一文介绍了为什么要使用消息队列。我们再来讨论下如何有效使用消息队列。 消息队列模式 目前主流消息队列主...

  • Kafka常见问题解决

    概要:我们使用消息队列,就需要知道为什么要用消息队列,什么场景需要用消息队列,使用消息队列能带来哪些好处和消息队列...

  • 进程间通信(下)

    消息队列 在UNP第二卷中详细介绍了两种消息队列:Posix消息队列和System V消息队列。这两种消息队列很相...

  • APUE读书笔记-15进程内部通信(6)

    7、消息队列 消息队列是存放在内核中的消息的链表,通过消息队列标识进行标记。我们把消息队列称为队列,把它的标识称为...

  • java消息机制

    1.什么是消息队列? 1.消息队列是一个队列,先进先出,你无法读取消息队列中间的消息,只能按照顺序,从消息队列的头...

网友评论

      本文标题:浅谈消息队列

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