一、RabbitMQ与Messaging
消息用于连接和扩展(scale)软件应用。应用可以作为一个大型应用的组件或者用户设备和数据互相连接起来。消息是一个通过分离发送和接收数据来达到解耦和异步的应用。消息的应用有数据发送的非阻塞操作或推送通知,发布/订阅模式,异步处理和工作队列等。
RabbitMQ就是一个消息的代理者,它为你的应用提供了一个公共的平台来发送和接收消息,同时给你的应用的消息提供一个安全的地方停留,直到被接收。
二、RabbitMQ的特点
1、可靠性(Reliability)
RabbitMQ提供很多特性供我们可以在性能和可靠性作出折中的选择,包括持久化、发送确认、发布者确认和高可用性等。
2、弹性选路(Flexible Routing)
消息在到达队列前通过交换(exchanges)来被选路。RabbitMQ为典型的选路逻辑设计了几个内置的交换类型。对于更加复杂的选路,我们可以将exchanges绑定在一起或者写属于自己的exchange类型插件。
3、集群化(Clustering)
在一个局域网内的几个RabbitMQ服务器可以集群起来,组成一个逻辑的代理人。
4、联盟(Federation)
对于那些需要比集群更加松散和非可靠连接的服务器来说,RabbitMQ提供一个联盟模型(Federation Model)
5、高可用队列(High Available Queue)
可以在一个集群里的几个机器里对队列做镜像,确保即时发生了硬件失效,你的消息也是安全的。
6、多客户端(Many Clients)
有各种语言的RabbitMQ客户端
7、管理UI(Management UI)
RabbitMQ提供一个易用的管理UI来监控和控制消息代理人的各个方面。
8、跟踪(Tracing)
如果你的消息系统行为异常,RabbitMQ提供跟踪支持来找出错误的根源。
9、插件系统(Plugin System)
RabbitMQ提供各种方式的插件扩展,我们可以实现自己的插件。