2020年7月2日
复习
-
消息确认机制
- 发送确认
- confirm mq确认收到消息
- return 发送队列时失败
- 消费确认
- ack: 手动(ack / nack requeue) | 自动
- 代码:
- 发送确认: channel.confirmSelect / confirmListener / returnListener
- autoAck / channel.basicAck / basicNack
- 发送确认
-
spring-boot集成rabbitmq
- starter-amqp
- application.yml
- rabbitmq链接
- mq配置
- 交换机+队列+绑定
- 发送 RabbitTemplate
- 消费端配置
- SimpleMessageListenerContainer
- @RabbitListener(队列名)
-
秒杀
- 解决方案
- 静态化+cdn 加速
- js 禁用按钮
- 限流,流控组件
- redis缓存 判断库存
- redis预减
- 发送到队列
- 取出消息,存入数据库
- 查询订单状态
- 分布式session
- 解决方案
数据量大的几种解决方案
- mysql集群, 主从,读写分离
- 冷热分离,部分冷数据(不经常使用的数据)移到另一个表中备份,减少主表的数据量
- 分库分表 mycat/ shadingjdbc
- NewSQL数据库,hbase
Mycat
- 逻辑库 / 逻辑表 mycat维护的虚拟的库和表
- 物理库 / 物理表 真实的mysql数据库和表
- 数据主机 数据库所在的主机
- 数据节点 一个数据库的实例
mycat安装
-
下载 http://dl.mycat.io/
-
解压
-
配置修改
- wrapper.conf
wrapper.java.additional.9=-Xmx512M
wrapper.java.additional.10=-Xms64M
-
启动mycat (bin目录下)
- mycat console 在控制台输出日志