一、RabbitMQ安装教程
RabbitMQ是一个开源的消息代理(message broker)软件,它跑在服务器上,通过消息队列来实现应用程序之间的解耦。下面是RabbitMQ的安装教程。
1.安装Erlang
在安装RabbitMQ之前,需要先安装Erlang,官网下载地址为 https://www.erlang-solutions.com/resources/download.html 。
在下载页面,选择相应的操作系统版本,如Windows系统的安装包:otp_win64_23.2.exe,双击安装即可。
2.安装RabbitMQ
官方网站下载地址为https://www.rabbitmq.com/download.html 。在下载页面中,选择适合自己操作系统的版本进行下载。在Windows系统中,下载 rabbitmq-server-windows-x86-3.8.9 。
安装时要注意要选择自己的操作系统,以及64位或32位版本,直接双击安装包,一路“下一步”即可。
3.启动RabbitMQ
RabbitMQ 的安装完成后,就可以启动RabbitMQ了。在Windows系统中,点击“开始菜单” -> “RabbitMQ” -> “RabbitMQ Command Prompt”即可启动。
4.通过Web管理界面访问RabbitMQ
可以打开浏览器,输入 http://localhost:15672/ 访问RabbitMQ的 Web管理界面(默认端口号为15672),用户名和密码默认均为guest。
二、RabbitMQ教程
1.消息队列
消息队列是一种跨进程、跨平台的通讯机制,可以让一个应用程序向另一个应用程序或多个应用程序发送消息。这样就可以把系统拆分成多个独立的组件,各组件之间通讯通过消息队列来完成。
2.消息模型
RabbitMQ使用了消息模型,这个消息模型称为AMQP(Advanced Message Queuing Protocol,高级消息队列协议)。AMQP中,有4个概念:Exchange、Queue、Binding和Routingkey。
3.消息发送
RabbitMQ发送消息是通过将消息发送给一个Exchange(交换器)来实现转发的。而Exchange则根据Binding(绑定)将消息路由到对应的Queue(队列)中。使用默认的Exchange和Queue,我们可以通过命令行发送消息。
//发送消息 $ rabbitmqadmin publish exchange=amq.default routing_key=my_queue payload="hello, world" //接收消息 $ rabbitmqadmin get queue=my_queue
三、RabbitMQ安装详细教程
1.为什么要安装RabbitMQ?
RabbitMQ是一种优秀的消息代理系统,适用于分布式系统架构之间的通信。它可以帮助系统之间实现解耦,保证数据的可靠性。其应用场景如下:
- 异步任务处理
- 跨服务协作
- 流量控制
- 分布式事务
2.准备工作
在安装RabbitMQ之前,需要先安装Erlang,请先按照上面的步骤进行安装。
3.安装RabbitMQ
访问RabbitMQ的官方网站 https://www.rabbitmq.com/download.html ,根据自己的操作系统进行下载。
在Windows系统中,下载 rabbitmq-server-windows-x86-3.8.9.exe 。
下载完成后,双击安装包进行安装。在过程中,按默认选项一路“下一步”即可。
4.配置环境变量
在Windows系统中,默认情况下是没有将RabbitMQ的安装路径添加到环境变量中的。因此,我们需要在环境变量中手动添加RabbitMQ的安装路径。
首先找到RabbitMQ的安装路径,如下所示:
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9
然后打开“开始菜单” -> “计算机”,右键“属性”,在“高级系统设置”中选择“环境变量”,在用户变量中找到“Path”选项,添加RabbitMQ的安装路径。
添加完成后,按下“确定”即可。
5.启动RabbitMQ
打开命令行窗口,输入下面的命令以启动RabbitMQ。
C:\>rabbitmq-server -detached
上面的命令会以守护进程的方式启动RabbitMQ。
6.访问RabbitMQ Web管理界面
通过浏览器来访问 RabbitMQ 的 Web管理界面。
打开浏览器,输入http://localhost:15672/ ,进入管理界面。用户名和密码默认为guest。
7.停止和卸载RabbitMQ
停止RabbitMQ可以通过以下命令来实现。
C:\>rabbitmqctl stop
卸载RabbitMQ可以直接从计算机中删除rabbitmq_server-3.8.9文件夹即可。
四、RabbitMQ的使用
1.消息生产者
RabbitMQ的消息生产者代码示例如下。
import pika # 创建连接和通道 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 声明exchange channel.exchange_declare(exchange='direct_logs', exchange_type='direct') # 发送消息 channel.basic_publish(exchange='direct_logs', routing_key='info', body='Hello World!') # 关闭连接 connection.close()
2.消息消费者
RabbitMQ的消息消费者代码示例如下。
import pika # 创建连接和通道 connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 声明exchange channel.exchange_declare(exchange='direct_logs', exchange_type='direct') # 声明随机队列 result = channel.queue_declare('', exclusive=True) queue_name = result.method.queue # 绑定队列和exchange channel.queue_bind(exchange='direct_logs', queue=queue_name, routing_key='info') # 定义回调函数,用于接收消息 def callback(ch, method, properties, body): print("Received %r" % body) # 开始接收消息 channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True) # 等待消息 channel.start_consuming()