消息中间件的作用:

    1. 让程序之间解耦
    2. 异步消息处理
    3. 流量削峰


    AMQP和JMS:

    1. AMQP是一种协议,用来规范数据在客户端和服务端年之间传递的标准
    2. JMS即Java消息服务,是一个Java平台关于面向消息中间件的API
    3. JMS是定义了统一接口,对消息操作进行统一,AMQP通过协议统一数据交互格式。
    4. JMS限定了必须使用java语言,AMQP只是协议,不是实现方式,因此是跨语言的
    5. JMS规定了两种消息模型(queue,topic);AMQP的消息模型更加丰富

    RabbitMQ特点:

    1. Erlang开发
    2. 可靠性:数据持久化、传输确认、发布确认
    3. 灵活的路由
    4. 消息集群
    5. 高可用
    6. 多协议
    7. 多语言客户端
    8. 管理界面
    9. 跟踪机制

    Rabbit基本概念:

    1. Publisher:生产者,向交换器发布消息的客户端应用程序
    2. Consumer: 消费者
    3. Broker:消息队列服务器的实体
      1. Virtual Host:虚拟主机(类似数据库),RabbitMQ默认的vhost是/
        1. Exchange:交换机 生产者将消息发送给交换机,交换器再分发给队列
        2. Queue:队列,必须和交换机绑定
    4. Connection:连接
      1. Channel:信道
    5. Consumer:消费者
    6. Message:消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则是由一系列的可选属性组成,这些属性包括routing-key(路由键,告诉路由器接收什么消息,不接收什么消息)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储等)。