美文网首页程序员
消息中间件MQ

消息中间件MQ

作者: 飞翔的鲲 | 来源:发表于2018-02-07 19:04 被阅读97次

各消息队列的使用
http://blog.csdn.net/konglongaa/article/details/52208273

各种MQ对比


综合选择RabbitMQ

image.png

优缺点


  1. RabbitMQ
    遵循AMQP实现,传统的messaging queue系统实现,基于Erlang语言开发,
    用在对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量还在其次。
    支持协议还包括XMPP、SMTP、STOMP,是一款重量级MQ,更适合于企业级的开发。实现Broker构架,消息在发送给客户端时先在中心队列排队。对路由、负载均衡及数据持久化都有良好的支持。

  2. Kafka
    优点:
    可扩展。Kafka集群可以透明的扩展,增加新的服务器进集群。
    高性能。Kafka性能远超过传统的ActiveMQ、RabbitMQ等,Kafka支持Batch操作。
    容错性。Kafka每个Partition数据会复制到几台服务器,当某个Broker失效时,Zookeeper将通知生产者和消费者从而使用其他的Broker。
    缺点:
    重复消息。Kafka保证每条消息至少送达一次,虽然几率很小,但一条消息可能被送达多次。
    消息乱序。Kafka某一个固定的Partition内部的消息是保证有序的,如果一个Topic有多个Partition,partition之间的消息送达不保证有序。
    复杂性。Kafka需要Zookeeper的支持,Topic一般需要人工创建,部署和维护比一般MQ成本更高。

RabbitMQ消息可靠性

  1. 发送者
    发送这端利用confirm保证消息可以顺利达到rabbitmq,消息开启持久化(Delivery Mode = 2).
    发送者发送一个消息,到达rabbitmq,然后rabbitmq认为此消息需要持久化,经过内存到磁盘的过程,然后把消息返回给发送者端.
  2. 消息队列(消息持久化)
    申明交换机持久化和队列持久化
    rabbitmq接收到消息,会把消息从内存刷到磁盘的存储文件中.
  3. 消费者
    设置消息的ack,当消费者消费一个消息的时候,会返回给rabbitmq对应queue一个ack消息,这样就保证了消息消费完成.

相关文章

  • MQ

    MQ - 消息中间件

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

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

  • 消息队列的流派

    消息队列的流派 什么是 MQ Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发...

  • 什么是分布式消息中间件?

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

  • 8. 消息队列的流派

    # 什么是 MQ Message Queue(MQ),消息队列中间件。很多人都说:MQ 通过将消息的发送和接收分离...

  • 数据库中间件:Mycat 权威指南+Mycat 实战笔记,双管齐

    前阵子复习了一下消息中间件MQ系列的知识点,忽然想起还有个数据库中间件——MyCat! MQ系列可看:消息中间件合...

  • 消息队列简介和RabbitMQ环境搭建

    什么是消息中间件 消息队列中间件(Message Queue Middleware) 简称MQ是指用高效可靠的消息...

  • RabbitMQ 消息中间件

    消息中间件 一、简介 消息中间件也可以称为消息队列(MQ:message queue),是指用高效可靠的消息传递机...

  • Rabbit MQ简介

    MQ 介绍 MQ是消息中间件,常见的有RabbitMQ,Kafka,RocketMQ,activeMQ 等,用于分...

  • 面试篇:RabbitMQ

    1. 什么是消息中间件 消息队列中间件 (MessageQueue Middleware,简称为 MQ) 是指利用...

网友评论

    本文标题:消息中间件MQ

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