RabbitMQ概览RabbitMQ是一个高性能的分布式消息中间件。它由Erlang编写,这种语言天生支持分布式,而且性能极高(但是比较难上手)。通信概念RabbitMQ简单理解就是一个队列服务,我们的生产者不断地往它投递消息,而消费者不断地从它那里获取消息。但相较于利用redis的List这类简单队列,RabbitMQ的消息投递更灵活一点。首先需要知道一些RabbitMQ中的通信概念:Exchange(交换器)Queue(队列)Producer(生产者)Consumer(消费者)RabbitMQ中Exchange类似于一个路由器,我们的Consumer并不会把消息直接投递给队列,而是投递给Exchange,Exchange根据我们投递时的路由键(routing key)再发送到特定的队列。这样的设计让消息可以灵活选路,发送到某一类的队列中,形成一对多的关系,而不仅仅是一对一。Exchange所以说RabbitMQ中的Exchange很方便,很强大,它有这样几种类型:directfanouttopicheaders(几乎用不到)direct交换器很简单,有时候我们仅仅需要一个很简单的队列(消息投递到其中,然后不断消费它),这时候我们就可以用direct交换器,它的规则是:如果路由键匹配,消息就会被投递到对应的队列。fanout交换器忽略路由键,把消息同时发到一批队列。topic则就是根据不同路由键,把消息发送到某一类队列中。