三、连接RabbitMQ实例

  • 在创建RabbitMQ实例后,您需要手动连接至RabbitMQ实例管理数据或将应用服务器连接至数据库进行业务部署。

白名单设置

  • 我们需要把我们云服务器的IP设置添加如白名单,这样才能正常的进行应用服务器和RabbitMQ直接的正常通信以及使用在线管理界面查看。

1、在云数据库管理面板中的RabbitMQ的白名单中进行添加

image-95.png

2、在白名单添加面板中填入名称信息、相应的规则、对应关联的实例。添加后记得启用规则。

  • 这里的规则指的是对需要连接IP信息进行添加,默认拦截所有IP。

image-96.png

image-97.png

初始化设置RabbitMQ登录用户

  • RabbitMQ实例默认创建后需要手动重置用户密码信息。在实例列表中找到对应实例,在详情页面中进行实例密码重置

image-98.png

image-99.png

image-100.png

建立Vhost

  • Vhost管理面板中添加一个新的Vhost进行使用。


image-101.png

image-102.png

image-103.png

测试实例

1、登录我们的应用服务器(以Linux为例),测试网络端口情况(如:telnet、tcping)。

image-16.png

2、安装python3及相应扩展。

  • 本次测试使用python进行操作示范。

yum install python3 -y

image-105.png

安装好了后安装扩展,命令如下:

pip3 install pika

image-104.png

3、编写创建生产者python代码,注意使用到RabbitMQ用户名和密码,连接IP地址和Vhost名称。保存为producer.py

import pika
# -*- coding: utf-8 -*-
# 设置 RabbitMQ 服务器的用户名和密码
credentials = pika.PlainCredentials('用户名', '密码')

# 连接到 RabbitMQ 服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('连接IP地址', virtual_host='Vhost名字', credentials=credentials))

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()

4、编写消费者者python代码,注意使用到RabbitMQ用户名和密码,连接IP地址和Vhost名称。保存为consumer.py

import pika
# -*- coding: utf-8 -*-
# 设置 RabbitMQ 服务器的用户名和密码
credentials = pika.PlainCredentials('用户名', '密码')

# 连接到 RabbitMQ 服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('连接IP地址', virtual_host='Vhost名字', credentials=credentials))
channel = connection.channel()

# 声明同样的队列
channel.queue_declare(queue='hello')

# 定义回调函数,处理接收到的消息
def callback(ch, method, properties, body):
    print(f" [x] Received {body}")

# 指定消费者,监听队列
channel.basic_consume(queue='hello',
                      on_message_callback=callback,
                      auto_ack=True)

print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

6、开始运行

python3 producer.py
python3 consumer.py

image-106.png


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: