当前位置:   article > 正文

RabbitMQ 部署及配置详解(集群部署)_rabbitmq 部署方式

rabbitmq 部署方式

RabbitMQ 是一个开源的消息中间件,经常用于在分布式系统中进行消息通信。本文将介绍 RabbitMQ 的部署、配置和集群部署以及使用代码的详细步骤。

部署 RabbitMQ

首先,需要在官网下载合适的 RabbitMQ 安装包和 Erlang 环境。可以在以下链接中下载。

下载链接:https://www.rabbitmq.com/install-windows.html

下载完毕后,执行以下步骤:

1.安装 Erlang 环境

安装 Erlang 环境非常简单,只需双击安装包,然后一路点击“下一步”即可。

2.安装 RabbitMQ

双击 RabbitMQ 安装包,然后一路点击“下一步”即可。

3.启动 RabbitMQ

启动 RabbitMQ 非常简单,打开命令提示符(Windows 用户可以使用“cmd”命令),然后输入以下命令:

rabbitmq-server start
  • 1

这将启动 RabbitMQ 服务器。如果服务器已经在运行,则会显示“已经在运行”的消息。

配置 RabbitMQ

RabbitMQ 的配置文件位于安装目录下的“etc”文件夹中,名为“rabbitmq.conf”。可以通过修改此文件来更改 RabbitMQ 的配置。

以下是一些可能用到的配置选项:

  • RabbitMQ 的用户名和密码

在配置文件中添加以下行:

default_user = admin
default_pass = admin
  • 1
  • 2

这会将默认的 RabbitMQ 用户名和密码分别设置为“admin”和“admin”。

  • RabbitMQ 的端口号

默认情况下,RabbitMQ 监听端口号为5672。可以通过以下行将其更改为其他端口号:

listeners.tcp.default = 5672
  • 1
  • RabbitMQ 存储位置

默认情况下,RabbitMQ 消息以及元数据存储在“\AppData\Roaming\RabbitMQ\db”文件夹中。可以通过以下行将其更改为其他位置:

# 定义 RabbitMQ 的数据存储位置
# $RABBITMQ_BASE 是一个环境变量,指向 RabbitMQ 安装目录
# 所以此时 RabbitMQ 的数据将会存储在安装目录的"data"文件夹下。
sql_db.dir = $RABBITMQ_BASE/data/mnesia
  • 1
  • 2
  • 3
  • 4

集群部署 RabbitMQ

RabbitMQ 支持集群部署,可以通过多个 RabbitMQ 节点共享消息。以下是在 Windows 环境下集群部署 RabbitMQ 的步骤:

  1. 在每个 RabbitMQ 节点中安装并启动 RabbitMQ。

  2. 将所有节点的配置文件中的“cluster_nodes”选项设置为所有节点的 IP 地址。以下是示例配置文件中的行:

# 设置该节点所在集群的其他节点
# cluster_nodes.{node-name} = {'rabbit@hostname', 'rabbit@hostname'}
cluster_nodes = rabbit@192.168.0.101, rabbit@192.168.0.102, rabbit@192.168.0.103
  • 1
  • 2
  • 3
  1. 在每个节点上启动 RabbitMQ 命令行工具并输入以下命令:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
  • 1
  • 2
  • 3

这将确保所有节点都能够相互连接并共享消息。

  1. 在集群中创建一个虚拟主机。在其中一个节点上使用以下命令:
rabbitmqctl add_vhost my_vhost
  • 1

此命令将创建一个名为“my_vhost”的虚拟主机。

  1. 对于每个节点,使用以下命令将其添加到虚拟主机中:
rabbitmqctl set_permissions -p my_vhost guest ".*" ".*" ".*"
  • 1

此命令将允许所有用户都可以对“my_vhost”虚拟主机执行任何操作。

使用 RabbitMQ

以下是使用 RabbitMQ 的示例代码。该代码使用 Python 语言编写,但对于其他语言也可以进行相应的更改。

发送消息

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")

connection.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

接收消息

import pika

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='hello')

channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

这些代码分别是发送和接收消息。使用“pika”库对于在 Python 中使用 RabbitMQ 非常方便。只需将代码中的主机地址和队列名称更改为实际使用的值即可。

希望我的回答能够帮助您学习并使用 RabbitMQ。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/436791
推荐阅读
相关标签
  

闽ICP备14008679号