RabbitMQ学习笔记一:基本概念与环境搭建

一、定义

    MQ(Message Queue,消息队列)是基于应用程序之间的一种通信方式,应用程序通过读写出入队列的消息进行通信,而不需要用专用的连接来连接它们。消息通信指的是程序之间在消息中传递信息进行通信,而不是传统的通过直接调用(如RPC)的方式进行通信。MQ的使用除去了消息接收和发送的应用程序同时执行的要求。RabbitMQ是实现了AMQP协议MQ的一个中间件,它由ERLANG语言编写。常用的MQ中间件还有IBM MQ,Rocket MQ,Active MQ,Rocket MQ以及轻量级的由Redis实现的MQ。进程之间常用的通信方式有:管道、有名管道、信号量、信号、共享内存、套接字。

二、应用场景

    对于大型的软件系统来说,它会有很多的模块或者说是子系统,比如我在的国内某互联网银行,银行的软件架构体系中就包含了多个系统。这个时候多个系统之间的通信就成了一个问题。传统的IPC(进程间通信)很多都是在单一的系统上,模块之间具有高度的耦合性,不适合做扩展。而使用socket进行通信的话,虽然可以部署在多个服务器上,但是仍然存在许多问题需要解决。诸如:
 1.信息的发送者与接收者之间如何维持双方之间的连接,如果连接发生中断,发送中的数据如何处理?
 2.如何降低双方系统之间的耦合度?
 3.如何能够按照优先级处理数据?

你可能感兴趣的:(RabbitMQ)