1.流量削峰
订单存储的解耦
为了进行流量削峰,我们引入 rabbitmq 消息队列,当购物系统产生订单后,可以把订单数据发送到消息队列;而订单消费者应用从消息队列接收订单消息,并把订单保存到数据库
这样,当流量激增时,大量订单会暂存在rabbitmq中,而订单消费者可以从容地从消息队列慢慢接收订单,向数据库保存
1.0 导入商城项目
1.课前资料\elasticsearch\pd商城.zip
2.pd-web文件夹解压到 rabbitmq 工程目录
3.在 rabbitmq 工程中导入模块
4.使用 sqlyog 导入项目目录中的 pd.sql
如果导入失败,可以增大 mysql 缓存区
set global max_allowed_packet=100000000;
set global net_buffer_length=100000;
SET GLOBAL interactive_timeout=28800000;
SET GLOBAL wait_timeout=28800000
5.确认工程 jdk 配置
6.右键执行 RunPdAPP
7.在运行配置中,working directory 设置成 pd-web 模块目录
然后重启
8.数据库中清除数据,方便后面测试
delete from pd_user
delete from pd_order
delete from pd_order_item
1.1发送订单到 rabbitmq
1.1.1 pom.xml 添加 rabbitmq 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
1.1.2 application.yml 添加 rabbitmq 连接
spring:
rabbitmq:
host: 192.168.64.140
port: 5672
# virtualHost: /pd
username: admin
password: admin