RabbitMQ
1 安装
启动服务器
rabbitmq-server
你也可以添加 -detached 属性来让它在后台运行(注意:只有一个破折号)
sudo rabbitmq-server -detached
永远不要用 kill 停止 RabbitMQ 服务器,而是应该用 rabbitmqctl 命令:
sudo rabbitmqctl stop
2 安装 控制台插件 web 页面详情
rabbitmq-plugins enable rabbitmq_management
4 列出有哪些队列,有哪些消息在等待中
rabbitmqctl list_queues
简单的hello world
1 生产者发送 hello world 消息队列中
2 消费者获取消息并打印
[root@jinkang-e2elog rabbitmq]# cat send.py #!/usr/bin/env python # -*- coding: UTF-8 -*- import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() #创建一个名称为hello的队列 channel.queue_declare(queue='hello') for i in range(10): channel.basic_publish(exchange='', routing_key='hello', body='Hello ' + str(i) + ' World')
#recive.py #!/usr/bin/env python # -*- coding: UTF-8 -*- import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() #创建一个名称为hello的队列 channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(" [x] Received %r" % body) channel.basic_consume(on_message_callback=callback,queue='hello',auto_ack=True) channel.start_consuming() #进程会一直执行
默认来说,RabbitMQ会按顺序得把消息发送给每个消费者(consumer)。
平均每个消费者都会收到同等数量得消息。这种发送消息得方式叫做——轮询(round-robin)
以上面的 hello world demo 来说, 生产者 发送了 10个消息 range(10)
我们在两个窗口 执行两个 recive.py ,构造两个 worker
rabbitmq 会均匀的将消息发送给两个 woker。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程