RabbitMQ的RPM包安装和Python读写操作

下载地址

bash 复制代码
## erlang 下载地址
https://packagecloud.io/rabbitmq/erlang?page=6

## rabbitmq 下载地址
https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.29-1.el7.noarch.rpm?distro_version_id=140

Rabbitmq的RPM包安装

bash 复制代码
## 下载
wget --content-disposition "https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.18-1.el7.x86_64.rpm/download.rpm?distro_version_id=140"

##
wget --content-disposition "https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.29-1.el7.noarch.rpm/download.rpm?distro_version_id=140"

###
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

默认账号密码:guest/guest,rabbitmq 从 3.3.0 开始禁止使用 guest/guest 权限通过除 localhost 外的访问。

创建后创建用户相关命令

bash 复制代码
## 创建用户,第二个knight 为密码
rabbitmqctl add_user knight knight

##设置用户分配操作权限
rabbitmqctl set_user_tags knight administrator

##
rabbitmqctl set_permissions -p / knight ".*" ".*" ".*"

##
systemctl status rabbitmq-server

## 开启 web 访问
rabbitmq-plugins enable rabbitmq_management

其他常用命令

bash 复制代码
##
https://blog.csdn.net/knight_zhou/article/details/132599796

Python读写

bash 复制代码
### 依赖库
pip install pika

参考文章

bash 复制代码
##
https://support.huaweicloud.com/intl/zh-cn/devg-rabbitmq/rabbitmq-devg-003.html

生产者

bash 复制代码
import pika
import random

random_int = random.randint(1,100)
#Connection information
conf = {
    'host': 'yy.cn',
    'port': 5672,
    'queue_name': 'queue-test',
    'username': 'admin',
    'password': 'admin'
}

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(str(random_int), encoding="utf-8")
data = bytes("cc", encoding="utf-8")

channel.basic_publish(exchange='',
                      routing_key=conf['queue_name'],
                      body=data)

print("produce...")

connection.close()

消费者

python 复制代码
import pika

#Connection information
conf = {
    'host': 'yy.cn',
    'port': 5672,
    'queue_name': 'queue-test',
    'username': 'admin',
    'password': 'admin'
}

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()
相关推荐
棠十一5 小时前
Rabbitmq
分布式·docker·rabbitmq
陈暗暗5 小时前
rabbitMQ初入门
rabbitmq
懒虫虫~5 小时前
基于SpringBoot解决RabbitMQ消息丢失问题
spring boot·rabbitmq
Lansonli6 小时前
大数据Spark(六十一):Spark基于Standalone提交任务流程
大数据·分布式·spark
Theodore_10227 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
G探险者12 小时前
《深入理解 Nacos 集群与 Raft 协议》系列五:为什么集群未过半,系统就不可用?从 Raft 的投票机制说起
分布式·后端
G探险者12 小时前
《深入理解 Nacos 集群与 Raft 协议》系列一:为什么 Nacos 集群必须过半节点存活?从 Raft 协议说起
分布式·后端
G探险者12 小时前
《深入理解 Nacos 集群与 Raft 协议》系列四:日志复制机制:Raft 如何确保提交可靠且幂等
分布式·后端
G探险者12 小时前
《深入理解 Nacos 集群与 Raft 协议》系列三:日志对比机制:Raft 如何防止数据丢失与错误选主
分布式·后端
G探险者12 小时前
《深入理解 Nacos 集群与 Raft 协议》系列二:Raft 为什么要“选主”?选主的触发条件与机制详解
分布式·后端