美文网首页
RabbitMQ-1 入门

RabbitMQ-1 入门

作者: 巴巴11 | 来源:发表于2020-03-20 22:19 被阅读0次

    1 概述

    MQ衡量指标:
    - 服务性能
    - 数据存储
    - 集群架构
    

    1.1 ActiveMQ

    完全支持JMS规范。性能一般。API丰富。

    架构模式:

    • 1 Master-Slave模式(主备模式)
    • 2 NetWork模式(集群模式)


      image.png

    1.2 Kafka

    LinkedIn开源。性能好。
    分布式发布-订阅消息系统。
    主要特点是基于Pull的模式来处理消息消费,追求高吞吐。对消息的重复、丢失、错误没有严格要求。

    结构模式:

    • 1 集群模式


      image.png

    1.3 RocketMQ

    Java开发,高性能,高吞吐。适合大规模分布式系统。
    思路起源Kafka。商业版收费。

    架构模式:

    • 1 集群模式


      image.png

    1.4 RabbitMQ

    Erlang开发。完美结合SpringAMQP。
    开源消息队列系统。基于AMQP协议实现。
    AMQP主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性,安全。适用在对数据一致性、稳定性和可靠性要求高的场景。

    image.png

    架构模式

    image.png

    2 AMQP

    高级消息队列协议
    Advanced Message Queuing Protocol

    协议模型

    image.png

    核心概念

    Server: 又称Broker,接受客户端的连接,实现AMQP服务。
    
    Connection: 应用程序与Broker的网络连接。
    
    Channel: 网络信道,几乎所有的操作都在Channel中进行。是进行消息读写的通道。
    客户端可以建立多个channel,每个channel代表一个会话任务。
    
    Message: 消息,由properties和body组成。Properties可以对消息进行修饰,比如消息的优先级,延迟等高级特性;body就是消息内容。
    
    Virtual host: 虚拟地址,用于进行逻辑隔离,最上层的消息路由。
    一个VH里可以有若干个Exchange和Queue。
    同一个VH里不能有相同名称的Exchange或Queue。
    
    Exchange: 接收消息,根据路由键转发消息到绑定的队列。
    
    Binding: Exchange和Queue之间的虚拟连接,binding中可以包含routing key(路由键)。
    
    Routing key(路由键): 一个路由规则,虚拟机VH可以用它来确定如何路由一个特定的消息。
    
    Queue: Message queue,保存消息并将它们转发给消费者。
    

    整体架构:


    image.png

    消息的流转:


    image.png
    $ ps -ef | grep rabbit
    $ kill pid
    

    相关文章

      网友评论

          本文标题:RabbitMQ-1 入门

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