amqp是rabbitmq的java 包
1.1、rabbitMQ的优点(适用范围)
1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器。
2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。
3. 有消息确认机制和持久化机制,可靠性高。
4. 开源
其他MQ的优势:
1. Apache ActiveMQ曝光率最高,但是可能会丢消息。
2. ZeroMQ延迟很低、支持灵活拓扑,但是不支持消息持久化和崩溃恢复。
rabbitMq是在AMQP协议标准基础上完成的 ,采用的语言是Erlang.
两大核心组件exchange和queue
exchange类似于一个交换机,提供一个路由转发功能。接受生产者发送的消息
并根据绑定的规则 将消息路由给服务器中的队列。
ExchangeType决定了Exchage路由消息的行为,例如direct/fanout/topic,不同的Exchange路由行为是不一样的
direct Exchange:要求该消息与特定的路由键完全匹配
fanout Exchange:一个发送到交换机上的消息会被转发到与该交换机绑定的所有队列上
topic Exchange:通过消息的路由关键字和绑定关键字的模式匹配,这种路由类型可以用来支持经典的发布、订阅消息传输模型
Queue用于存储还未被消费者消费的信息,既可以内存存储 也是可以持久化存储
message 由header和body组成
header是由生产者添加的各种属性的集合,包括message是否被持久化,由哪个queue接受,优先级是多少等 ,body是真正需要传输的数据
bindingKey:所谓绑定就是将一个特定的exchange和一个特定的queue绑定起来
一般情况下rabbitMq的默认配置就足够了
(如有雷同 是我吵你)