目录
1.拉开差距的一类面试题
2.业务需求描述
3.对业务流程的思考
4.物流配送进度查询,考虑到了吗?
5.事务的保证
6.消息中间件的引入
7.重试机制的引入
8.引入幂等性机制
9.对这类面试题的总结
(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!)
1、拉开差距的一类面试题
现在面试经常会遇到一类问题,面试官让你现场设计出某个业务场景下的一个系统,这个系统往往在业务或者技术上有一定难度,主要考察的是你多年积淀下来的系统设计的能力以及技术思维的能力。
类似的这类系统设计题目很多,比如:
-
请你设计一个秒杀系统
-
请你设计一个支撑百万用户的IM消息系统
-
请你设计一个微信红包系统
-
请你设计一个电商平台积分兑换系统
这些题目本身都是开放式命题,没有固定答案。遇到这种问题,一定不要慌,关键是在现场要思路清楚,有理有据,慢慢分析。
本文就其中一个问题:设计一个电商平台的积分兑换系统,来详细阐述一下。文中会详细指出在系统设计的时候要考虑哪些要点,给大家展示出来这类问题思考的一个过程。
2、业务需求的描述
假设面试官现在给出来对于这个电商平台的积分兑换系统的相关需求如下:
-
用户在电商平台里平时通过购买商品、晒单评论可以有不断的积累积分
-
积累到足够的积分后,就可以在电商平台的积分兑换页面中,选择使用自己的积分来兑换一些礼品
需求其实就这么简单,那么面试官说了,针对这个业务场景给出你对这个机制实现的思考过程以及这里要注意的一些地方。
3、对业务流程的思考
如何思考?首先,用户不停的购买商品以及晒单评论,会不断的获取积分,那么是不是需要一张积分表,专门用来存储每个用户的积分呢?
没错,这个表是一定需要的,可以现场给出下述的表结构。
积分表:
- id(自增id主键)
- user_id(用户id)
- credit(积分)
继续来看,假设在积分兑换页面,用户选