
最近正在企业参加培训,在学习大数据相关的课程,学到信息处理的时候,技术老师让我们自己搭建RabbitMQ信息平台(Linux或者Windows环境),我选择了linux环境下搭建下文就是我总结出来的具体搭建过程。
RabbitMQ介绍
————————————————————————————————————————
RabbitMQ基础概念
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是 用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库
RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
————————————————————————————————————————
RabbitMQ专业术语
连接(Connection):一个网络连接,比如TCP/IP套接字连接。
会话(Session):端点之间的命名对话。在一个会话上下文中,保证“恰好传递一次”。
信道(Channel):多路复用连接中的一条独立的双向数据流通道。为会话提供物理传输介质。
客户端(Client):AMQP连接或者会话的发起者。AMQP是非对称的,客户端生产和消费消息,服务器存储和路由这些消息。
服务器(Server):接受客户端连接,实现AMQP消息队列和路由功能的进程。也称为“消息代理”。
端点(Peer):AMQP对话的任意一方。一个AMQP连接包括两个端点(一个是客户端,一个是服务器)。
搭档(Partner):当描述两个端点之间的交互过程时,使用术语“搭档”来表示“另一个”端点的简记法。比如我们定义端点A和端点B,当它们进行通信时,端点B是端点A的搭档,端点A是端点B的搭档。
片段集(Assembly):段的有序集合,形成一个逻辑工作单元。
段(Segment):帧的有序集合,形成片段集中一个完整子单元。
帧(Frame):AMQP传输的一个原子单元。一个帧是一个段中的任意分片。
控制(Control):单向指令,AMQP规范假设这些指令的传输是不可靠的。
命令(Command):需要确认的指令,AMQP规范规定这些指令的传输是可靠的。
异常(Exception):在执行一个或者多个命令时可能发生的错误状态。
类(Class):一批用来描述某种特定功能的AMQP命令或者控制。
消息头(Header):描述消息数据属性的一种特殊段。
消息体(Body):包含应用程序数据的一种特殊段。消息体段对于服务器来说完全透明——服务器不能查看或者修改消息体。
消息内容(Content):包含在消息体段中的的消息数据。
交换器(Exchange):服务器中的实体,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。
交换器类型(Exchange Type):基于不同路由语义的交换器类。
消息队列(Message Queue):一个命名实体,用来保存消息直到发送给消费者。
绑定器(Binding):消息队列和交换器之间的关联。
绑定器关键字(Binding Key):绑定的名称。一些交换器类型可能使用这个名称作为定义绑定器路由行为的模式。
路由关键字(Routing Key):一个消息头,交换器可以用这个消息头决定如何路由某条消息。
持久存储(Durable):一种服务器资源,当服务器重启时,保存的消息数据不会丢失。
临时存储(Transient):一种服务器资源,当服务器重启时,保存的消息数据会丢失。
持久化(Persistent):服务器将消息保存在可靠磁盘存储中,当服务器重启时,消息不会丢失。
非持久化(Non-Persistent):服务器将消息保存在内存中,当服务器重启时,消息可能丢失。
消费者(Consumer):一个从消息队列中请求消息的客户端应用程序。
生产者(Producer):一个向交换器发布消息的客户端应用程序。
虚拟主机(Virtual Host):一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。客户端应用程序在登录到服务器之后,可以选择一个虚拟主机。
介绍完这些之后,我就要开始正式搭建环境了。
虚拟机使用VMware,Linux系统选择CentOS 7,Linux的安装这篇文章就先不在这里面介绍了,以后可以单独出一篇关于虚拟机安装的文章。
Linux环境下RabbitMQ的搭建
1.RabbitMQ需要在ERLONG环境下运行,安装ERLONG之前要先安装所需要的依赖
在linux中使用命令:
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

2.下载安装ERLONG压缩包
wget http://erlang.org/download/otp_src_22.0.tar.gz

3.将下载好的压缩包接压缩
tar -zxvf otp_src_22.0.tar.gz

4.配置安全路径
./configure --prefix=/usr/local/erlang

5.开始安装
make install

6.配置环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
应用环境变量
source /etc/profile

7.载RabbitMQ的压缩包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
解压缩
tar -zxvf rabbitmq-server-generic-unix-3.7.15.tar.xz

8.添加环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
9. 启动RabbitMQ并查看运行状态
rabbitmq-servser -detached
rabbitmqctl status

10.配置RabbitMQ所需要的web插件
rabbitmq-plugins enable rabbitmq_management
11.在虚拟机中打开浏览器,输入 http://127.0.0.1:15672/来访问RabbitMQ界面
http://127.0.0.1:15672/

搭建到这里,整个RabbitMQ就算是搭建成功了。
说一下我在搭建过程中反复出现的一个错误,就是在访问RabbitMQ界面时,如果是Linux系统中搭建的,就一定要在虚拟机的浏览器中输入访问端口,在Windows的浏览器中输入是无效的。
294

被折叠的 条评论
为什么被折叠?



