一、初识RabbitMQ
百度百科有这么一句话:
MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息, 而另一端则可以读取或者订阅队列中的消息。 MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义, 而MQ则是遵循了AMQP协议的具体实现和产品。
他的官网中用大大的黑粗字体写着:
RabbitMQ is the most widely deployed open source message broker.
由此可见,RabbitMQ是一个消息中间件,生产者生成消息,消费者消费消息,它遵循AMQP(高级消息队列协议),是最广泛部署的开源消息代理。
另外,RabbitMQ是用Erlang语言实现的,它有几个概念:
broker:消息队列服务器实体。 exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 queue:消息队列,每个消息都会被投入到一个或多个队列。 binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。 routing Key:路由关键字,exchange根据这个关键字进行消息投递。 vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。 producer:消息生产者,就是投递消息的程序。 consumer:消息消费者,就是接受消息的程序。 channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。