码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ (消息队列)专题学习01 RabbitMQ部署

时间:2014-05-07 07:33:04      阅读:421      评论:0      收藏:0      [点我收藏+]

标签:rabbitmq   消息队列   

一、概述

RabbitMQ(Message Queue)是当前流行的开源的消息队列系统,用ERLang语言开发,按照AMQP(Advanced Message Queue Protocol)的标准实现,消息队列是一种应用程序对应用程序之间的通信方法,应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,则无需专用链接来链接它们,RabbitMQ便是这样一种用于应用程序之间通信的中间件。

二、架构

RabbitMQ的架构图如下:

bubuko.com,布布扣

-1

在此有几个概念需要说明一下:

1、Exchange:消息交换机,它指定消息按照什么规则,路由至哪个队列。

2、Queue:消息队列载体,每个消息都会被投入到一个或者多个队列中。

3、Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。

4、Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

5、vhost:虚拟主机,一个broker里面可以开设多个vhost,用作不同用户的权限分离。

6、producer:消息生产者,就是投递消息的程序。

7、consumer:消息消费者,就是接受消息的程序。

8、channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

9、Broker:简单来说就是消息队列服务器实体。

消息投递过程大致如下:

1>客户端连接到消息队列服务器,打开一个channel。

2>客户端声明一个exchange,并设置相关属性。

3>客户端声明一个queue,并设置相关属性。

4>客户端使用routing key,在exchange和queue之间建立绑定好关系。

5>客户端投递消息到exchange。

6>exchange接收到消息后,根据消息的key和已经设置好的binding,进行消息路由,将消息投递到一个或者多个队列里。

RabbitMQ几个特性:

1、exchange支持多种类型,有fanout、direct、topic、header等,每种类型的都有自己不同的使用场景和性能。

2、RabbitMQ支持消息的持久化,也就是数据写在磁盘上,为了数据的安全,我想大多数用户都选择持久化,消息队列持久化包括3个部分:

》exchange持久化,在声明时指定durable=>1

》queue持久化,在声明时指定durable=>1

》消息持久化,在投递时指定delivery_mode=>2(此处1是非持久化)

注意:如果exchange和queue都是持久化的,那么它们之间的binding也是持久化的,如果exchange和queue两者之间有一个持久化,一个非持久化,就不允许建立绑定。

三、安装

基于windows 32位操作系统的安装部署:

1、下载ERLang。(百度其官网)

2、安装ERLange,运行下载的安装程序即可,默认安装。

3、安装完成之后,设置ERLang的环境变量,首先建立一个ERL_HOME的变量,如下图所示:

bubuko.com,布布扣

图-2

4、下载rabbitmq-server-3.1.5.exe,并安装.(百度其官网)

5、启动rabbitma-start开启rabbit-server服务,启动过程【开始】--->【程序】--->【RabbitMQ Server】--->【RabbitMQ Service - start】,此时rabbitMQ-server就启动了。

基于Linux的安装部署(略)

RabbitMQ (消息队列)专题学习01 RabbitMQ部署,布布扣,bubuko.com

RabbitMQ (消息队列)专题学习01 RabbitMQ部署

标签:rabbitmq   消息队列   

原文地址:http://blog.csdn.net/xuzheng_java/article/details/25075855

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!