1 介绍项目
1)项目整体设计的感受(可以画架构图) 2)你负责了什么,承担了什么角色,做了什么 3)项目描述,最好体现自己的综合素质:如何协调开发,遇到问题如何解决,用什么技术实现了什么功能
2 缓存雪崩
3 问题:秒杀地址不应该爆漏给用户
写脚本,LRU缓存控制请求数量
4 不同数据库的数据读写
分布式锁,消息队列(提高性能,降低耦合度,流量削峰)
5 分布式事物解决方案
6 数据库与redis缓存如何保持一致性
7 秒杀多个步骤如何保证线程安全性
客观锁,悲观锁
8 用的什么测试工具
Redis缓存服务
缓存商品和商品详情信息,如果不存在,则从数据库查询,并且加入到redis缓存,如果存在,直接返回。
1)异步订单 2)异步支付 3)订单超时处理(quartz)
面杀系统架构设计思路
其他
https://blog.csdn.net/qq_35620501/article/details/95047642
生成数据工具:mockaroo
1、如果有子查询,改为连接语句 2、在where条件建立索引:user的id 3、如果有连接关键词,也建立索引:user的id 4、如果有分组或者排序,建立索引:order by time 5、同时也可以建立联合索引
需求1 某个部门查看审核人员的所有审批信息:先查询某个部门所有的审核人员,根据审批建议、审批时间及审批人查询审批信息(审批数据70w)
select u.* , c.* from user u inner join checklog c
on c.uid == u.id
where u.deptmentId = 1
and time > {1} and time < {2}
and desc like ' %'
①子查询:先查询部门的用户id然后再查询相关的审批信息 ②没有加索引:70w数据查询用了3w s。 ③给user的id建立索引,时间减少到了1.003s ④然后考虑到子查询,所以,改成连接操作,时间变为0.057s ⑤再给连接字段建立索引,时间变为0.001s ⑥模拟数据增加到300w时间增加到了0.016s,在部门id和用户id建立联合索引,时间降到了0.005s。 ⑦用时间进行排序,建立时间索引。
现在免费送给大家,在我的公众号 好好学java 回复 资料 即可获取。
有收获?希望老铁们来个三连击,给更多的人看到这篇文章
1、老铁们,关注我的原创微信公众号「好好学java」,专注于Java、数据结构和算法、微服务、中间件等技术分享,保证你看完有所收获。
2、给俺一个 star 呗,可以让更多的人看到这篇文章,顺便激励下我继续写作,嘻嘻。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。