2024-02-16 12:20:44
30
0
0
RabbitMQ教程
RabbitMQ 是一个开源的消息队列系统,它基于AMQP(高级消息队列协议)标准设计。消息队列允许应用程序异步地发送和接收数据,这意味着消息发送者不需要等待消息接收者处理信息,从而提高了应用程序的处理效率和扩展性。
安装Rabbitmq及用户管理
安装
1.使用docker查询rabbitmq的镜像
docker search rabbitmq
2.安装镜像
默认最新版本
docker pull rabbitmq
如果需要安装其他版本在rabbitmq后面跟上版本号即可
docker pu
2023-06-21 20:17:43
23
0
0
安装Rabbitmq及用户管理
安装
1.使用docker查询rabbitmq的镜像
docker search rabbitmq
2.安装镜像
安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可
docker pull rabbitmq
3.运行mq:
需要注意的是-p 5673:5672 解释:-p 外网端口(主机的端口):docker的内部端口 ,你们可以改成自己的外网端口号,我这里映射的外网端口是5673那么程序连接端口就是用5673
docker
2023-06-21 20:17:43
12
0
0
生产者和消费者
生产者
\# coding=utf-8\### 生产者import jsonimport pikaimport datetimeimport timecredentials = pika.PlainCredentials('guest', 'guest') # mq用户名和密码**\# 虚拟队列需要指定参数 virtual_host,如果是默认的可以不填。**connection = pika.BlockingConnection(pika.ConnectionParameters(host = '123.60.216.176',port = 5673,v
2023-06-21 20:17:43
10
0
0
扇出模式
producer不需要指定队列,只需要指定exchange
consumer才需要指定队列和交换机,consumer的队列 一般会用默认队列 连接 交换机
channel.exchange_declare(exchange='logs',exchange_type='fanout')
result = channel.queue_declare(queue='',exclusive=True)
consumer
# coding=utf-8
### 消费者
import pika
user_info = pika.
2023-06-21 20:17:43
10
0
0
direct模式
producer 只需要往 direct交换机中发消费,producer 向routing key中发消息
routing key 和 队列是 多对一 关系,一个队列可以有多个routing key
consumer 只从队列如“direct_queue1”中取数据,
新建maven项目mqtest
pom中导入rabbitmq相关依赖
<dependencies> <dependency> <groupId>com.rabbitmq</groupId>
2023-06-21 20:17:43
12
0
0
topic模式
producer只需要向topic交换机里发送信息,producer需往routing-key中发信息
routing-key与queue可以是多对一
producer
# coding=utf-8
### 生产线者
import json
import pika
import sys
import datetime
import time
credentials = pika.PlainCredentials('admin', '123') # mq用户名和密码
2023-06-21 20:17:43
22
0
0
RPC调用
Rpc是异步调用,client发送请求,同时告诉server处理完后要发送消息给:回调队列的ID:correlation_id=abc,并调用replay_to回调队列对应的回调函数。
不要对消息进行确认,反复确认会导致进入死循环
client
import json
import pika
import uuid
class RpcClient():
def init(self):
self.credentials = pika.PlainCredentials('g