操作009:Prefetch
一、思路
生产者发送100个消息
对照两种情况:
消费端没有设置prefetch参数:100个消息被全部取回
消费端设置prefetch参数为1:100个消息慢慢取回
二、生产者端代码
@Test
public void testSendMessage() {
for (int i = 0; i < 1...
操作008-03:消费端消息确认
一、ACK
ACK是acknowledge的缩写,表示已确认
二、默认情况
默认情况下,消费端取回消息后,默认会自动返回ACK确认消息,所以在前面的测试中消息被消费端消费之后,RabbitMQ得到ACK确认信息就会删除消息
但实际开发中,消费端根据消息队列投递的消息执行对应的业务,未必都能执行成功,如果希望能够多次重试,那么...
操作008-02:交换机和队列持久化
一、测试非持久化交换机和队列
1、创建非持久化交换机
创建之后,可以在列表中看到:
2、创建非持久化队列
创建之后,可以在列表中看到:
3、绑定
4、发送消息
public static final String EXCHANGE_TRANSIENT = "exchange.transient.user...
操作008-01-B:备份交换机
一、创建备份交换机
1、创建备份交换机
注意:备份交换机一定要选择fanout类型,因为原交换机转入备份交换机时并不会指定路由键
2、创建备份交换机要绑定的队列
①创建队列
②绑定交换机
注意:这里是要和备份交换机绑定
3、针对备份队列创建消费端监听器
public static final String ...
操作008-01-A:生产者端消息确认机制
一、创建module
二、搭建环境
1、配置POM
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</art...
操作007:整合SpringBoot
1、消费者工程
①创建module
②配置POM
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifac...
操作006:主题模式
一、生产者代码
package com.atguigu.rabbitmq.topic;
import com.atguigu.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.c...
操作006-路由模式
一、生产者代码
package com.atguigu.rabbitmq.routing;
import com.atguigu.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq...
操作004:发布订阅模式
一、生产者代码
package com.atguigu.rabbitmq.fanout;
import com.atguigu.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitm...
POM中没有指定java版本
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
...
操作003:工作队列模式
一、生产者代码
1、封装工具类
package com.atguigu.rabbitmq.util;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Connection...
操作002:HelloWorld
一、目标
生产者发送消息,消费者接收消息,用最简单的方式实现
官网说明参见下面超链接:
RabbitMQ tutorial - "Hello World!" — RabbitMQ
二、具体操作
1、创建Java工程
①消息发送端(生产者)
②消息接收端(消费者)
③添加依赖
<depend...
操作001:RabbitMQ安装
一、安装
# 拉取镜像
docker pull rabbitmq:3.13-management
# -d 参数:后台运行 Docker 容器
# --name 参数:设置容器名称
# -p 参数:映射端口号,格式是“宿主机端口号:容器内端口号”。5672供客户端程序访问,15672供后台管理界面访问
# -v 参数:卷映...
先吐槽一下,大部分学这个的都是个人学员吧,没有企业微信支付接口也不先给个解决方法。
个人不要花钱去搞,没必要,不耽误跟着听完整个项目,只不过最后不能测试,或者自己想办法屏蔽掉微信支付。
import jakarta.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import j...
代驾:订单支付
一、账单信息
上一节中我们结束的代驾,更新了账单信息与分账信息,接下来司机端小程序会跳转到账单确认页,展示账单信息,然后发送账单给乘客端,乘客端拿到账单信息后进行支付账单。
1、获取账单信息
order_bill表记录的账单信息,我们直接获取即可
1.1、订单微服务接口
1.1.1、OrderInfoController
@Operatio...