zoukankan      html  css  js  c++  java
  • RabbitMQ 简介

    RabbitMQ简介

    RabbitMQ是一个开源的消息代理和队列服务器,可以在不同应用之间传递数据。

    RabbitMQ是采用Erlang语言编写的,基于AMQP协议。

    RabbitMQ的优点

    • 高性能、稳定性
    • 可靠的消息投递模式(confirm)、返回模式(return),保证数据不丢失
    • 可以与Spring AMQP无缝整合
    • 功能丰富,提供了丰富的集群模式、表达式配置、HA模式、镜像队列模型

    RabbitMQ高性能的原因:Erlang可以做到和原生socket一样的低延迟


    AMQP协议

    AMQP,即Advanced Message Queuing Protocol,高级消息队列协议。

    AMQP只是一个开发规范,用来统一标准。

    AMQP的核心概念

    Server:又称为Broker,接受客户端的连接,实现AMQP实体服务

    Conection:应用程序与Broker之间的网络连接

    Channel:网络信道,Channel是进行消息读写的通道,几乎所有的操作都在Channel中进行。客户端可建立多个Channel,一个Channel代表一个会话任务。

    Message:消息,应用程序、Broker之间传递的数据,由Properties、Body2部分组成,Properties对消息进行修饰,比如设置消息的优先级、延时投递等,Body是消息内容。

    Virtual host:虚拟主机,用于逻辑隔离,一个Virtual host中可以有多个Exchange、Queue(名字不能相同)。

    Exchange:交换机,接收消息,再根据路由键(routing key)转发消息到绑定的Queue。

    Binding:Exchange、Queue之前的虚拟连接(绑定)

    Routing key:路由规则,指定一个虚拟主机如何路由消息(Exchange=>Queue)

    Queue:也成为Message Queue,消息队列,保存消息并将消息转发给消息消费者


    RabbitMQ|AMQP的整体架构

    消息生产者、消费者都是RabbitMQ Client。

    一个Exchange可以绑定多个Queue,可以向多个Queue投递消息。Exchange根据Routing key来确定将消息投递给哪个Queue。

    消息消费者监听某个Queue,监听的Queue有消息进来,就处理消息。

  • 相关阅读:
    谈敏捷的好文章
    梁信军说的话
    如何做需求管理
    支持向量机通俗解释
    如何写数据报告
    数据分析注意点
    傅盛谈管理的本质
    I Hate It HDU
    敌兵布阵 HDU
    P3372 【模板】线段树 1 (区间查询)
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12465447.html
Copyright © 2011-2022 走看看