组件_RabbitMQ之推送消息

RabbitMQ推送消息

在这里插入图片描述
步骤一:安装RabbitMQ
具体安装可以参照作者的另外2篇文章
RabbitMQ在windows下的安装
RabbitMQ在Linux下的安装
步骤二:打开Rabbit的管理界面,地址为IP:15672
在这里插入图片描述

步骤三:在无登录账号的情况下,系统提供了默认的账号:guest ,密码:guest
注:guest可能出现登录不上的情况,这里系统是默认只能在本地登录guest这个账号
在这里插入图片描述
,如需使用,需要去RabbitMQ配置文件配置。
配置流程:进入/usr/lib/rabbitmq/lib/rabbitmq_server-3.7.7/ebin/rabbit.app
将:{loopback_users, [<<”guest”>>]},改为:{loopback_users, []},重启即可
重启命令:

systemctl restart rabbitmq-server.service

步骤四:添加一个交换机Exchanges
进入Exchanges
在这里插入图片描述
点击添加一个交换机
在这里插入图片描述
输入交换机的名字、类型、是否持久化,并点击Add exchange按钮
在这里插入图片描述
查看界面出现新的交换机,则成功
在这里插入图片描述

步骤五:添加一个队列
选择Queues下的Add a new queue
在这里插入图片描述
输入队列名和是否持久化,点击Add queue
在这里插入图片描述
查看界面上出现一个队列,则成功
在这里插入图片描述

步骤六:交换机和队列绑定
点击队列名,进去详情查看
在这里插入图片描述
选择Banding(绑定)
在这里插入图片描述
输入要绑定的交换机的名字和Routing key
Routing key:为匹配规则,只有相对应的Exchanges和Routing key才可以访问到该队列。比如Routing key=Abc,则只有Routing key=Abc可以访问到该队列。
Routing key=Abc.*的话,那么只有Abc.xxx可以访问,Abc.xx.xx就不行
在这里插入图片描述
点击绑定,出现下列显示则绑定成功
在这里插入图片描述

步骤七:消息的推送
在java中配置rabbitmq,port一般为5672
下面${变量}形式为已经配置在了本地的环境变量中
在这里插入图片描述
在java代码中注入

@Autowired
private RabbitTemplate rabbitTemplate;

调用(对象被转成了json格式):

rabbitTemplate.convertAndSend("middle_exchanges","middle.save",new ObjectMapper().writeValueAsString(要传输的对象));

步骤八:查看消息
查看消息所在的队列详情,点击Get Messages
在这里插入图片描述
选择查看即可

在这里插入图片描述

<think>好的,我现在需要帮助用户了解如何使用RabbitMQ进行消息推送。首先,我需要回顾用户提供的引用资料,看看有没有直接相关的信息。引用[1]提到的是SpringBoot集成RabbitMQ的教程,里面可能有基础操作。引用[2]和[3]则涉及Hyperf框架结合RabbitMQ和WebSocket实现消息推送,这说明用户可能对PHP或Hyperf环境感兴趣,或者想了解如何将消息推送到WebSocket客户端。 用户的问题是关于RabbitMQ消息推送的实现方法和教程,我需要分步骤解答。首先,可能需要介绍RabbitMQ的基本概念,比如生产者、消费者、交换机、队列等,确保用户有基础理解。然后,根据引用资料,分别给出不同框架下的实现示例,比如Spring Boot(Java)和Hyperf(PHP),这样覆盖用户可能的语言偏好。 引用[1]中的视频教程可能包含界面操作和权限配置,可以建议用户参考该资源了解管理界面。引用[2]和[3]详细说明了Hyperf中使用WebSocket和RabbitMQ结合的方法,这部分需要详细展开,说明如何保存客户端连接,进行消息广播。 同时,用户可能需要知道如何确保消息可靠传输,比如确认机制、持久化等,这属于进阶内容,应该在步骤中提到。此外,WebSocket保持长连接的部分也很关键,需要解释客户端ID的管理和消息广播流程。 可能还需要考虑异常处理,比如连接失败或消息发送失败的情况,但用户的问题可能更关注基础实现,所以这部分可以简要提及。另外,示例代码的正确性很重要,要确保语法正确,比如在Java中使用Spring AMQP,PHP中使用Hyperf的组件。 最后,生成的相关问题需要围绕用户可能进一步关心的点,比如性能优化、不同协议对比、权限配置等,参考引用内容中的部分来提出。</think>### RabbitMQ消息推送实现方法及教程 使用RabbitMQ实现消息推送的核心步骤分为4个阶段: 一、基础环境搭建 1. 安装Erlang和RabbitMQ服务 2. 通过管理界面创建虚拟主机(vhost)、用户和权限设置[^1] 3. 定义交换机(exchange)和队列(queue)的绑定关系 $$ \text{Exchange} \rightarrow \text{Routing Key} \rightarrow \text{Queue} $$ 二、消息生产者实现(以Spring Boot为例) ```java @Autowired private RabbitTemplate rabbitTemplate; public void sendMessage(String exchange, String routingKey, Object message) { rabbitTemplate.convertAndSend(exchange, routingKey, message); } ``` 三、消息消费者实现(以Hyperf框架为例) ```php <?php use Hyperf\Amqp\Annotation\Consumer; use Hyperf\Amqp\Message\ConsumerMessage; #[Consumer(exchange: "push_exchange", routingKey: "push.*", queue: "push_queue")] class PushConsumer extends ConsumerMessage { public function consume($data): string { // 调用WebSocket服务广播消息 return self::ACK; } } ``` 四、WebSocket集成(消息推送关键环节) 1. 建立WebSocket长连接保存客户端ID[^3] 2. 监听RabbitMQ消息队列 3. 通过`Swoole\WebSocket\Server`进行消息广播 ```php // 保存连接的客户端 $server->connections = new \SplObjectStorage(); $server->on('message', function(Swoole\WebSocket\Server $server, $frame) { // 接收客户端消息 }); // 从RabbitMQ获取消息推送 foreach ($server->connections as $fd) { $server->push($fd, $message); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值