- What's New
- Function Overview
- Product Bulletin
-
Service Overview
- Infographics
- What Is DMS for RabbitMQ?
- Product Advantages
- Application Scenarios
- Specifications
- Comparing RabbitMQ, Kafka, and RocketMQ
- Comparing RabbitMQ AMQP-0-9-1 with Open-Source RabbitMQ
- Comparing RabbitMQ Versions
- Related Services
- Security
- Notes and Constraints
- Basic Concepts
- Exchanges
- Permissions Management
- Billing
- Getting Started
-
User Guide
- Process of Using RabbitMQ
- Permissions Management
- Buying a RabbitMQ Instance
- Configuring Virtual Hosts
- Accessing a RabbitMQ Instance
- Managing Messages
- Advanced Features
-
Managing Instances
- Viewing and Modifying Basic Information of a RabbitMQ Instance
- Viewing RabbitMQ Client Connection Addresses
- Managing RabbitMQ Instance Tags
- Configuring RabbitMQ Recycling Policies
- Resetting the RabbitMQ Instance Password
- Enabling RabbitMQ Plug-ins
- Exporting the RabbitMQ Instance List
- Deleting a RabbitMQ Instance
- Logging In to RabbitMQ Management UI
- Modifying RabbitMQ Instance Specifications
- Migrating RabbitMQ Services
- Testing Instance Performance
- Applying for Increasing RabbitMQ Quotas
- Viewing Metrics and Configuring Alarms
- Viewing RabbitMQ Audit Logs
-
Best Practices
- RabbitMQ Best Practices
- Automatic Recovery of a RabbitMQ Client from Network Exceptions
- Automatic Consumer Reconnection After a RabbitMQ Node Restart
- Improving RabbitMQ Performance
- Configuring Queue Load Balancing
- Deduplicating Messages Through Message Idempotence
- Suggestions on Using DMS for RabbitMQ Securely
- Developer Guide
-
API Reference
- Before You Start
- API Overview
- Calling APIs
- Getting Started
- APIs V2 (Recommended)
- Permissions and Supported Actions
- Out-of-Date APIs
- Appendix
- Change History
- SDK Reference
-
FAQs
-
Instances
- What RabbitMQ Version Does DMS for RabbitMQ Use?
- What SSL Version Does DMS for RabbitMQ Use?
- Why Can't I View the Subnet and Security Group Information During Instance Creation?
- How Are Requests Evenly Distributed to Each VM of a Cluster RabbitMQ Instance?
- Do Queues Inside a Cluster RabbitMQ Instance Have Any Redundancy Backup?
- Does DMS for RabbitMQ Support Data Persistence? How Do I Perform Scheduled Data Backups?
- How Do I Obtain the Certificate After SSL Has Been Enabled?
- Can I Change the SSL Setting of a RabbitMQ Instance?
- Can RabbitMQ Instances Be Scaled Up?
- Does RabbitMQ Support Two-Way Authentication?
- Does DMS for RabbitMQ Support CPU and Memory Upgrades?
- How Do I Disable the RabbitMQ Management UI?
- Can I Change the AZ for an Instance?
- How Do I Obtain the Region ID?
- Why Can't I Select Two AZs?
- How to Change Single-node RabbitMQ Instances to Cluster Ones?
- Can I Change the VPC and Subnet After a RabbitMQ Instance Is Created?
-
Connections
- How Do I Configure a Security Group?
- Why Does a Client Fail to Connect to a RabbitMQ Instance?
- Does DMS for RabbitMQ Support Public Access?
- Does DMS for RabbitMQ Support Cross-Region Deployment?
- Do RabbitMQ Instances Support Cross-VPC Access?
- Do RabbitMQ Instances Support Cross-Subnet Access?
- What Should I Do If I Fail to Access a RabbitMQ Instance with SSL Encryption?
- Can I Access a RabbitMQ Instance Using DNAT?
- Why Can't I Open the Management Web UI?
- Can a Client Connect to Multiple Virtual Hosts of a RabbitMQ Instance?
- Why Does a RabbitMQ Cluster Have Only One Connection Address?
- Do RabbitMQ Instances Support the Ping Command?
- Messages
- Monitoring & Alarm
-
Instances
- Videos
-
More Documents
-
User Guide (ME-Abu Dhabi Region)
- Service Overview
- Getting Started
- Process of Using RabbitMQ
- Permissions Management
- Buying a RabbitMQ Instance
- Configuring Virtual Hosts
- Accessing a RabbitMQ Instance
- Managing Messages
- Advanced Features
-
Managing Instances
- Viewing and Modifying Basic Information of a RabbitMQ Instance
- Viewing RabbitMQ Client Connection Addresses
- Managing RabbitMQ Instance Tags
- Resetting the RabbitMQ Instance Password
- Enabling RabbitMQ Plug-ins
- Using the rabbitmq_tracing Plug-in
- Exporting the RabbitMQ Instance List
- Deleting a RabbitMQ Instance
- Logging In to RabbitMQ Management UI
- Modifying RabbitMQ Instance Specifications
- Migrating RabbitMQ Services
- Applying for Increasing RabbitMQ Quotas
- Viewing Metrics and Configuring Alarms
- Viewing RabbitMQ Audit Logs
-
FAQs
-
Instances
- What RabbitMQ Version Does DMS for RabbitMQ Use?
- What SSL Version Does DMS for RabbitMQ Use?
- Why Can't I View the Subnet and Security Group Information During Instance Creation?
- How Are Requests Evenly Distributed to Each VM of a Cluster RabbitMQ Instance?
- Do Queues Inside a Cluster RabbitMQ Instance Have Any Redundancy Backup?
- Does DMS for RabbitMQ Support Data Persistence? How Do I Perform Scheduled Data Backups?
- How Do I Obtain the Certificate After SSL Has Been Enabled?
- Can I Change the SSL Setting of a RabbitMQ Instance?
- Can RabbitMQ Instances Be Scaled Up?
- Does RabbitMQ Support Two-Way Authentication?
- Does DMS for RabbitMQ Support CPU and Memory Upgrades?
- How Do I Disable the RabbitMQ Management UI?
- Can I Change the AZ for an Instance?
- How Do I Obtain the Region ID?
- Why Can't I Select Two AZs?
- How to Change Single-node RabbitMQ Instances to Cluster Ones?
- Can I Change the VPC and Subnet After a RabbitMQ Instance Is Created?
-
Connections
- How Do I Configure a Security Group?
- Why Does a Client Fail to Connect to a RabbitMQ Instance?
- Does DMS for RabbitMQ Support Public Access?
- Does DMS for RabbitMQ Support Cross-Region Deployment?
- Do RabbitMQ Instances Support Cross-VPC Access?
- Do RabbitMQ Instances Support Cross-Subnet Access?
- What Should I Do If I Fail to Access a RabbitMQ Instance with SSL Encryption?
- Can I Access a RabbitMQ Instance Using DNAT?
- Why Can't I Open the Management Web UI?
- Can a Client Connect to Multiple Virtual Hosts of a RabbitMQ Instance?
- Why Does a RabbitMQ Cluster Have Only One Connection Address?
- Messages
- Monitoring & Alarm
-
Instances
- Change History
- API Reference (ME-Abu Dhabi Region)
-
User Guide (Kuala Lumpur Region)
- Service Overview
- Permissions Management
- Preparing the Environment
- Buying an Instance
- Accessing a RabbitMQ Instance
- Operating RabbitMQ Instances
- Quotas
- Monitoring
- Auditing
-
FAQs
-
Instances
- What RabbitMQ Version Does DMS for RabbitMQ Use?
- What SSL Version Does DMS for RabbitMQ Use?
- Why Can't I View the Subnet and Security Group Information During Instance Creation?
- What If One RabbitMQ VM Fails to Be Restarted When a Cluster RabbitMQ Instance Is Being Restarted?
- How Are Requests Evenly Distributed to Each VM of a Cluster RabbitMQ Instance?
- Do Queues Inside a Cluster RabbitMQ Instance Have Any Redundancy Backup?
- Does DMS for RabbitMQ Support Data Persistence? How Do I Perform Scheduled Data Backups?
- How Do I Obtain the Certificate After SSL Has Been Enabled?
- Can I Change the SSL Setting of a RabbitMQ Instance?
- Can RabbitMQ Instances Be Scaled Up?
- Does DMS for RabbitMQ Support MQTT?
- How Do I Clear Queue Data?
- Does DMS for RabbitMQ Support CPU and Memory Upgrades?
- How Do I Disable the RabbitMQ Management UI?
- Can I Change the AZ for an Instance?
-
Connections
- How Do I Configure a Security Group?
- Why Does a Client Fail to Connect to a RabbitMQ Instance?
- Does DMS for RabbitMQ Support Public Access?
- Does DMS for RabbitMQ Support Cross-Region Deployment?
- Does DMS for RabbitMQ Support Cross-VPC Access?
- Does DMS for RabbitMQ Support Cross-Subnet Access?
- What Should I Do If I Fail to Access a RabbitMQ Instance with SSL Encryption?
- Can I Access a RabbitMQ Instance Using DNAT?
- Why Can't I Open the Management Web UI?
- Can a Client Connect to Multiple Virtual Hosts of a RabbitMQ Instance?
- Why Does a RabbitMQ Cluster Have Only One Connection Address?
- Plug-ins
- Messages
- Monitoring & Alarm
-
Instances
- Change History
- API Reference (Kuala Lumpur Region)
-
User Guide (ME-Abu Dhabi Region)
- General Reference
Copied.
Configuring Clients in Python
This section describes how to access a RabbitMQ instance using a RabbitMQ client in Python on the Linux CentOS, including how to install the client, and produce and consume messages.
Before getting started, ensure that you have collected the information described in Collecting Connection Information.
Preparing the Environment
- Python
Generally, Python is pre-installed in the system. Enter python in a CLI. If the following information is displayed, Python has already been installed.
[root@ecs-test python]# python3 Python 3.7.1 (default, Jul 5 2020, 14:37:24) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
If Python is not installed, run the following command to install it:
yum install python
- A RabbitMQ client in Python. In this document, pika is used as an example.
Run the following command to install the recommended version of pika:
pip install pika
If pika cannot be installed using the pip command, run the following pip3 command instead:
pip3 install pika
Producing Messages
Replace the information in bold with the actual values.
- SSL authentication
import pika import ssl #Connection information conf = { 'host': 'ip', 'port': 5671, 'queue_name': 'queue-test', 'username': 'root', 'password': 'password' } context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) credentials = pika.PlainCredentials(conf['username'], conf['password']) parameters = pika.ConnectionParameters(conf['host'], conf['port'], '/', credentials, ssl_options=pika.SSLOptions(context)) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(conf['queue_name']) data = bytes('Hello World!', encoding='utf-8') channel.basic_publish(exchange='', routing_key=conf['queue_name'], body=data) print(" [x] Sent 'Hello World!'") connection.close()
- Non-SSL authentication
import pika #Connection information conf = { 'host': 'ip', 'port': 5672, 'queue_name': 'queue-test', 'username': 'root', 'password': 'password' } credentials = pika.PlainCredentials(conf['username'], conf['password']) parameters = pika.ConnectionParameters(conf['host'], conf['port'], '/', credentials) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(conf['queue_name']) data = bytes("Hello World!", encoding="utf-8") channel.basic_publish(exchange='', routing_key=conf['queue_name'], body=data) print(" [x] Sent 'Hello World!'") connection.close()
Consuming Messages
Replace the information in bold with the actual values.
- SSL authentication
import pika import ssl #Connection information conf = { 'host': 'ip', 'port': 5671, 'queue_name': 'queue-test', 'username': 'root', 'password': 'password' } context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2) credentials = pika.PlainCredentials(conf['username'], conf['password']) parameters = pika.ConnectionParameters(conf['host'], conf['port'], '/', credentials, ssl_options=pika.SSLOptions(context)) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(conf['queue_name']) def callback(ch, method, properties, body): print(" [x] Received %r" % body.decode('utf-8')) channel.basic_consume(queue=conf['queue_name'], on_message_callback=callback, auto_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
- Non-SSL authentication
import pika #Connection information conf = { 'host': 'ip', 'port': 5672, 'queue_name': 'queue-test', 'username': 'root', 'password': 'password' } credentials = pika.PlainCredentials(conf['username'], conf['password']) parameters = pika.ConnectionParameters(conf['host'], conf['port'], '/', credentials) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(conf['queue_name']) def callback(ch, method, properties, body): print(" [x] Received %r" % body.decode('utf-8')) channel.basic_consume(queue=conf['queue_name'], on_message_callback=callback, auto_ack=True) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot