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。

 

posted on   思此狂  阅读(121)  评论(0编辑  收藏  举报

编辑推荐:
· 基于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保姆级教程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示