RabbitMQ安装配置使用指南

一、概述

RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queuing Protocol)的开源实现。AMQP,即高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。服务器端是用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面具有良好的表现。

二、应用场景

对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统或者(subsystem or Component or submodule)。那么这些模块的如何通信?这和传统的IPC有很大的区别。传统的IPC很多都是在单一系统上的,模块耦合性很大,不适合扩展(Scalability);如果使用socket那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如:

1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何方式丢失?

2)如何降低发送者和接收者的耦合度?

3)如何让优先级高的接收者先接到数据?

4)如何做到负载均衡?有效均衡接收者的负载?

5)如何有效的将数据发送到相关的接收者?也就是说将接收者订阅的不同数据,如何做有效的过滤。

6)如何做到可扩展,甚至将这个通信模块发到cluster上?

7)如何保证接收者接收到了完整,正确的数据?

AMDQ协议解决了以上的问题,而RabbitMQ实现了AMQP。

三、服务结构

rabbitmq的框架如下:

几点解释:

rabbitmq server:是一种传输服务,维护从生产者到消费者的二路线,保证数据能按照指定方式进行传输。

clientA和clientB:即为生产者,数据的发送方。有两部分:payload(有效载荷)和label(标签),payload是传输的数据,label是标签,用于描述数据。而rabbitmq也是通过label来决定把信息发送给哪个消费者。

client1,client2,client3:即为消费者,数据的接收方。当信息到达队列之后,rabbitmq会依次发送给每一个订阅此信息的消费者,发送给消费者时会删掉信息的标签,对消费者来说自己不知道谁发送的信息。特定情况比如发送的数据包含生产者的信息时另当别论。

数据从生产者到消费者的传递,有几个概念:exchanges, queues和bindings。

Exchanges(交换器):是生产者发布信息的地方,由exchange将消息路由到一个或多个队列中。

queue(队列):是rabbitmq的内部对象,用于存储消息,rabbitmq中的消息都只能存储在队列中,生产者的消息最终都到queue中,消费者可根据订阅从queue中获取消息。

binding(绑定):通过binding将exchange和queue关联起来,这样rabbitmq就知道如何正确地将消息路由到指定的队列了。

需要知道的两个概念:

connection:生产者和消费者之间,使用TCP进行连接到rabbitmqserver的。

channels:虚拟连接,在TCP连接中,数据流是在channel中进行的。

四、应用安装指南

安装环境:CentOS6.8

4.1 安装erlang

安装rabbitmq需要先安装erlang,erlang是一种解释语言,可直接在rabbitmq官网中下载到(但可能不是最新版本)。地址: http://www.rabbitmq.com/releases/erlang/

wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm
rpm -ivh erlang-19.0.4-1.el6.x86_64.rpm

4.2 安装rabbitmq

  1. 导入rabbitmq公钥

首先导入rabbitmq的公钥,不安装密钥的话安装rabbitmq会报错

报错:warning: rabbitmq-server-3.6.6-1.el6.noarch.rpm: Header V4 RSA/SHA1Signature, key ID 6026dfca: NOKEY

rpm --import http://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  1. 安装rabbitmq

下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/

本次下载的是3.6.6版本

wget 
rpm -ivh rabbitmq-server-3.6.6-1.el6.noarch.rpm

安装过程中可能会报错,如:

error: Faileddependencies:

socat is needed byrabbitmq-server-3.6.6-1.el6.noarch

原因是缺少socat包,安装即可(需要epel扩展源):

yum install socat

此次安装使用的不是全新的系统,有部分相关包已经安装完,故实际操作中根据实际问题安装相应的依赖包。

  1. 配置变量

默认的变量可以在日志里查看到,日志在/var/log/rabbitmq/下,有四个文件,查看[email protected]前面的几行,有相关变量的说明,如:

node           : [email protected]

home dir       : /var/lib/rabbitmq

config file(s) :/etc/rabbitmq/rabbitmq.config

cookie hash    : +aRq6ISnMthDGwICCmjvGw==

log            : /var/log/rabbitmq/[email protected]

sasl log       : /var/log/rabbitmq/[email protected]

databasedir   : /var/lib/rabbitmq/mnesia/[email protected]

设置环境变量可以创建一个rabbitmq-env.conf文件,rabbitmq的环境变量都是有“RABBITMQ_”这样的前缀的,在配置文件里配置变量时要把前缀去掉,如:

#Rename the node

[email protected]

#Config file location and new filename bunnies.config

CONFIG_FILE=/etc/rabbitmq/

一般情况,不需要设置环境变量,使用默认就可以,除非有非标准的需求。

  1. 配置文件

配置文件的示例文件在/usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example,可以拷贝到/etc/rabbitmq/下并改名将example去掉:

cp/usr/share/doc/rabbitmq-server-3.6.6/rabbitmq.config.example/etc/rabbitmq/rabbitmq.config

此配置文件的内容为示例内容,可根据需求进行改动

相关参数可参考官方文档:http://www.rabbitmq.com/configure.html#configuration-file

  1. 端口访问设置

rabbitmq的端口比较多,系统的一些防护机制很可能会有影响,比如selinux,iptables等,以下端口是默认端口:

4369[empd]:是erlang集群节点间端口映射的守护进程,负责维护集群内的节点连接,提供节点名称到IP地址及端口的解析服务。

5672, 5671:tcp和ssl的侦听端口

25672:管理插件端口,默认是AMQP端口+20000

1883, 8883:如果MQTT启用的话会用到此端口,MQTT(消息队列遥测传输,是一个即时通讯协议)

  1. 系统层的参数修改

在生产上,可能会有大并发连接和队列,使用系统默认的最大打开文件数可能不足以应付高并发,所以需要将最大打开文件数做修改,默认为1024,可用ulimit -n查看,一般情况设置为4096就足以满足大多数工作负载:

ulimit -S-n 4096

时间: 2024-07-28 18:35:08

RabbitMQ安装配置使用指南的相关文章

RabbitMQ安装配置

安装RabbitMQ windows下的安装是非常简单的,我们需要准备两个东西 erlang的环境  下载windows和与之对象的操作系统位数安装包 http://www.erlang.org/downloads RabbitMQ http://www.rabbitmq.com/download.html 下载完毕之后,先安装 erlang再安装 RabbitMQ 安装这后我们可以配置一下rabbitmq的环境变量 打开命令行运行rabbitmq-server 现在大功已经告成了,不过rabb

Oracle GoldenGate 快速安装配置实用指南

GoldenGate作为Oracle公司大力发展的核心战略产品,在高可用.容灾.数据抽取转换方面扮演着越来越重要的作用.goldengate可以做什么,说起来真的太多了,高可用.容灾.Real-Time数据同步,如果你做过BI,一定知道ETL的工具(datastage.infomatica等),goldengate也可以做,而且,还有两个很关键的因素,第一,goldengate支持异构的数据库,几乎囊括了所有的主流数据库,到底哪些呢,去这里看看吧http://www.oracle.com/tec

erlang&RabbitMQ安装配置

Centos 6.8安装erlang&rabbitmq的方法 1.安装 erlang1.1 准备工作,先安装依赖库和应用工具yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel? rsync perl-net-snmp wx fop net-snmp unixODBC unixODBC-devel vim make lrzsz bc sysstat lsof wget xz 1.2 下载erlang

Windows 64位 RabbitMQ 安装配置

1:下载Erlang,地址:http://www.erlang.org/download/otp_win64_19.0.exe ,双击安装即可(首先装) 2:下载RabbitMQ,RabbitMQ 3.6.5下载 ,双击安装即可 启动报错 Applying plugin configuration to [email protected] failed. 这是因为RabbitMQ对大小写敏感,把计算机名称改为大写

RabbitMQ安装配置和基于EasyNetQ驱动的基础使用

RabbitMQ基本概念和原理 1.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计. 2.RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写. 3.Channel Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue.定义Exchange.绑定Queue与Exchange.发布消息等. 4

RabbitMQ安装配置-01

安装依赖环境 首先要安装RabbitMQ,需要安装ncurses-devel和erlang [email protected]:~# cd /data/soft/ [email protected]:~#wget ftp://ftp.invisible-island.net/ncurses/ncurses.tar.gz [email protected]:~#wget http://erlang.org/download/otp_src_22.0.tar.gz #下载很慢 我这里存放到我的网盘下

AMQP之RabbitMQ安装与配置

刚开始接触RabbitMQ,今天尝试安装,具体流程如下,参照了一些网上同行的经验,环境如下图: rabbitmq版本:3.1.5 下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5.tar.gz 文件下载目录:/home/gao/server以下简称为当前目录 准备工作:安装依赖环境 yum install build-essential openssl openssl-devel

RabbitMQ_安装配置与管理

RabbitMQ 安装配置与管理 安装 安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机 #wget  http://www.erlang.org/download/otp_src_R15B01.tar.gz #tar zxvf otp_src_R15B01.tar.gz && cd otp_src_R15B01 #./configure && make install 安装rabbitmq server #wget http

windows 下rabbitmq 安装---转载

原文地址:http://blog.sina.com.cn/s/blog_7cc0c8cc0101mb4a.html 1.下载并安装erlang,http://www.erlang.org/download.html,最新版是R15B01(5.9.1).由于我机器是64位的Win7,所以找到otp_win64_R15B01.exe下载并安装. 2.配置环境变量增加一个系统环境变量ERLANG_HOME配置为C:\Program Files\erl5.9.1 3.下载RabbitMQ,最新版是2.8