我们都知道,RabbitMQ 是目前非常热门的一款消息中间件,不管是互联网行业还是传统行业都在大量地使用。那么什么是消息?什么是消息中间件?这些专有名词都必须有了解。
一、消息中间件概述
1、消息 (Message) 是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串、JSON 等,也可以很复杂,比如内嵌对象。
2、消息中间件,全称叫消息队列中间件 (Message Queue Middleware,简称为 MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
3、消息传递模式:一般有两种传递模式:点对点(P2P, Point-to-Point) 模式和发布/订阅 (Pub/Sub) 模式。
点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。
发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题 (topic) ,主题可以认为是消息传递的中介,消息发布者将消息发布到某个topic,而消息订阅者则从这个topic中订阅消息。主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布/订阅模式在消息的一对多广播时采用 。
4、为什么叫RabbitMQ?
RabbitMQ 是由 RabbitMQ Technologies Ltd 开发并且提供商业支持的 。 取 Rabbit 这样一个
名字,是因为兔子行动非常迅速且繁殖起来非常疯狂, RabbitMQ 的开创者认为以此命名这个分
布式软件再合适不过了 。
二、RabbitMQ的安装及使用
RabbitMQ是使用Erlang语言编写的,因此在安装RabbitMQ之前,需要安装Erlang。Erlang官网下载地址为:http://www.erlang.org/downloads/。我下载的版本是最新版本21.2。我把下载的压缩包放在了/opt/erlang目录下。
1、解压安装包,并配置安装目录
①使用命令:tar xvf otp_src_21.2.tar.gz将下载的压缩包解压,解压后的目录为:otp_src_21.2。
②在/opt/erlang/otp_src_21.2目录下,配置Erlang的安装目录,使用命令:./configure --prefix=/opt/erlang。
执行配置命令过程中,若出现No curses library functions found,则需要安装ncurses。
使用命令执行:yum install ncurses-devel ,遇到确认提示,输入y。安装ncurses完成后,重新执行配置命令。
2、安装Erlang
①配置命令执行完成后,执行Erlang编译安装,执行make命令。
②执行完make后,执行make install。
3、修改/etc/profile文件,添加环境变量。
ERLANG_HOME=/opt/erlang
export PATH=$PATH:$ERLANG_HOME/bin
export ERLANG_HOME
4、添加完成后,让文件生效,执行source /etc/profile,并使用命令erl测试erlang是否安装成功。
三、RabbitMQ的安装
安装完Erlang后,我们安装一下RabbitMQ。在RabbitMQ的官网:http://www.rabbitmq.com/releases/rabbitmq-server/
下载3.7.10版本。
这里一定要注意与Erlang版本的对应关系,要不然会存在启动失败。我们下载的Erlang版本为21.2,因此使用的RabbitMQ版本为3.7.10。
1、我们将RabbitMQ安装在于Erlang相同的目录下/opt,把压缩包移到该目录下。
2、解压缩:执行命令,因为下载的是.xz文件,因此需要分两步进行:
xz -d rabbitmq-server-generic-unix-3.7.10.tar.xz
tar xvf rabbitmq-server-generic-unix-3.7.10.tar
3、为了方便记忆,将解压后的rabbitmq_server-3.7.10改名为rabbitmq,执行命令:
mv rabbitmq_server-3.6.15 rabbitmq
4、配置环境变量:在/etc/profile文件中,增加刚安装的RabbitMQ的环境变量。
export PATH=$PATH:/opt/rabbitmq/sbin
export RABBITMQ_HOME=/opt/rabbitmq
5、执行source /etc/profile,使环境变量配置生效。
四、测试
安装完成后,需要测试是否安装成功。
在/opt/rabbitmq/sbin目录下,我们使用以下命令:
rabbitmq-server -detached
此命令是以守护进程的方式在后台启动rabbitmq,警告可以忽略。
[root@localhost sbin]# rabbitmq-server -detached Warning: PID file not written; -detached was passed.
启动完成后,测试是否正常启动,使用命令:rabbitmqctl status,出现以下信息,说明启动成功!
[root@localhost sbin]# rabbitmqctl status Status of node rabbit@localhost ... [{pid,11229}, {running_applications, [{rabbit,"RabbitMQ","3.7.10"}, {rabbit_common, "Modules shared by rabbitmq-server and rabbitmq-erlang-client", "3.7.10"}, {ranch,"Socket acceptor pool for TCP protocols.","1.7.1"}, {ssl,"Erlang/OTP SSL application","9.1"}, {public_key,"Public key infrastructure","1.6.4"}, {asn1,"The Erlang ASN1 compiler version 5.0.8","5.0.8"}, {mnesia,"MNESIA CXC 138 12","4.15.5"}, {os_mon,"CPO CXC 138 46","2.4.7"}, {xmerl,"XML parser","1.3.18"}, {inets,"INETS CXC 138 49","7.0.3"}, {crypto,"CRYPTO","4.4"}, {recon,"Diagnostic tools for production use","2.3.6"}, {jsx,"a streaming, evented json parsing toolkit","2.9.0"}, {lager,"Erlang logging framework","3.6.5"}, {goldrush,"Erlang event stream processor","0.1.9"}, {compiler,"ERTS CXC 138 10","7.3"}, {syntax_tools,"Syntax tools","2.1.6"}, {sasl,"SASL CXC 138 11","3.3"},
相关推荐
3. **管理插件**: `rabbitmq-management`插件提供了一个Web界面,用于监控、管理RabbitMQ实例,包括查看节点状态、创建用户、管理虚拟主机等。 **三、RabbitMQ核心概念** 1. **生产者**: 生产者是发送消息到...
《RabbitMQ实战》 RabbitMQ是一种广泛使用的开源消息队列系统,它基于AMQP(Advanced Message Queuing Protocol)协议,提供可靠、灵活的消息传递服务。本实战指南将深入探讨RabbitMQ的核心概念、安装配置、使用...
**RabbitMQ实战:高效部署分布式消息队列** 在当今的软件开发中,消息队列作为异步处理和系统解耦的重要工具,被广泛应用。RabbitMQ作为一个开源的消息代理和队列服务器,以其稳定性和易用性赢得了广大开发者的好评...
3. **启动与停止**:安装完成后,使用命令行工具启动和停止RabbitMQ服务器,如`rabbitmq-server start`和`rabbitmq-server stop`。 4. **管理控制台**:RabbitMQ提供了一个Web管理界面,可以查看队列状态、创建和...
**四、RabbitMQ实战应用** 1. **任务队列**:在Web应用中,可以将耗时操作如邮件发送、图片处理等作为任务放入队列,由后台服务异步处理。 2. **微服务间通信**:在微服务架构中,服务间通过RabbitMQ进行解耦通信...
**RabbitMQ实战:高效部署分布式消息队列** 在当今的IT行业中,分布式系统和微服务架构变得越来越普遍,而消息队列作为这些系统中的重要组件,承担着数据同步、异步处理、解耦和负载均衡等关键任务。RabbitMQ,作为...
通过阅读《RabbitMQ实战 高效部署分布式消息队列》这本书,开发者可以深入了解RabbitMQ的使用技巧,掌握如何在实际项目中高效地部署和管理消息队列,从而提高系统的稳定性和可靠性。结合提供的38套Java高级架构视频...
综上所述,《RabbitMQ实战》这本书全面覆盖了RabbitMQ的基础知识、高级特性和实战案例,对于希望深入了解和应用消息队列技术的IT从业者来说,是一本不可或缺的参考书。通过学习和实践,你可以熟练掌握RabbitMQ的使用...
在本文中,我们将深入探讨如何在CentOS 7.3操作系统上安装RabbitMQ 3.7.8,这是一个流行的开源消息代理和队列管理器,广泛用于分布式系统中的异步任务处理和通信。RabbitMQ基于AMQP(Advanced Message Queuing ...
在实战篇中,会详细讲解RabbitMQ的安装与配置,包括在不同的操作系统上安装RabbitMQ服务器,配置管理工具如rabbitmqctl和rabbitmq-plugins,以及设置用户权限和虚拟主机等。此外,还会介绍如何使用各种编程语言(如...
安装及配置RabbitMQ** 安装RabbitMQ的过程涉及下载、安装和配置,具体步骤可参考相关文档。配置中,用户管理和虚拟主机(Virtual Hosts)设置是关键部分,它们允许精细控制权限和隔离不同应用的队列。 **2.2. ...
在这个“RabbitMQ实战视频”压缩包中,你将找到一系列关于RabbitMQ的实战教程,包括视频讲解、源代码示例以及相关的文档资料,帮助你深入理解和应用这个强大的工具。 1. **消息队列基础**:了解消息队列的基本概念...
在本文档中,我们将深入探讨如何使用RabbitMQ构建一个高效、可扩展的搜索系统,以及如何集成Spring框架来实现这一目标。RabbitMQ是一个开源的消息代理和队列服务器,它使得应用程序之间的通信变得简单而可靠。让我们...
3. **启动与停止**:使用 `systemctl start rabbitmq-server` 启动服务,`systemctl stop rabbitmq-server` 停止服务,`systemctl status rabbitmq-server` 查看状态。 4. **管理命令行工具**:`rabbitmq-plugins` ...
这说明我们将讨论的是一个实战过程,包括JMeter的配置、插件的安装、RabbitMQ连接的设置以及测试脚本的编写。 关于JMeter 3.3,这是JMeter的一个稳定版本,包含了丰富的测试元素,如线程组、采样器、监听器、断言等...
- 通过`rabbitmq-plugins enable`命令启用插件。 - 根据插件文档进行详细配置。 **58. 如何使用RabbitMQ流插件(Streams plugin)来处理大量数据?** - 利用流插件处理高吞吐量的实时数据流,提供低延迟的数据处理...
2. **安装RabbitMQ和Erlang**:使用官方提供的包管理器或者下载源代码进行编译安装。安装过程中,确保RabbitMQ的数据目录在所有节点上保持一致,以便集群共享数据。 3. **配置节点**:配置每个节点的`rabbitmq....
对于Linux系统,通常使用`sudo service rabbitmq-server start`命令来启动服务。 - **配置环境**:RabbitMQ支持多种配置方式,包括通过配置文件(rabbitmq.config)、命令行参数以及环境变量来进行配置。初学者可以...