电商项目亮点难忘的bug一般都有些啥 并且怎么解决和发现的

351 篇文章 0 订阅
224 篇文章 0 订阅

有很多人在面试的时候,简历都准备的是电商的项目,其实这个项目有的时候,还比较头疼。

因为我们都知道电商业务上其实大体一致,技术点上相对于其他的项目都会问的比较深入。

比如上面这个问题电商项目亮点:

电商项目最大的亮点无非是在性能上解决了多少用户同时在线抢购。

首先,我们了解下企业电商这块对系统架构的设计:

在电商领域,存在着典型的秒杀业务场景,那何谓秒杀场景呢。简单的来说就是一件商品的购买人数远远大于这件商品的库存,而且这件商品在很短的时间内就会被抢购一空。
比如每年的 618、双 11 大促,小米新品促销等业务场景,就是典型的秒杀业务场景。
我们可以将电商系统的架构简化成下图所示:

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙455787643,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。 

由图所示,我们可以简单的将电商系统的核心层分为:负载均衡层、应用层和持久层。
接下来,我们就预估下每一层的并发量:
假如负载均衡层使用的是高性能的 Nginx,则我们可以预估 Nginx 最大的并发度为:10W+,这里是以万为单位。
假设应用层我们使用的是 Tomcat,而 Tomcat 的最大并发度可以预估为 800 左右,这里是以百为单位。
假设持久层的缓存使用的是 Redis,数据库使用的是 MySQL,MySQL 的最大并发度可以预估为 1000 左右,以千为单位。Redis 的最大并发度可以预估为 5W 左右,以万为单位。
所以,负载均衡层、应用层和持久层各自的并发度是不同的,那么,为了提升系统的总体并发度和缓存,我们通常可以采取哪些方案呢?
①系统扩容
系统扩容包括垂直扩容和水平扩容,增加设备和机器配置,绝大多数的场景有效。
②缓存
本地缓存或者集中式缓存,减少网络 IO,基于内存读取数据。大部分场景有效。
③读写分离
采用读写分离,分而治之,增加机器的并行处理能力。
秒杀系统的特点
对于秒杀系统来说,我们可以从业务和技术两个角度来阐述其自身存在的一些特点。
秒杀系统的业务特点
这里,我们可以使用 12306 网站来举例,每年春运时,12306 网站的访问量是非常大的,但是网站平时的访问量却是比较平缓的,也就是说,每年春运时节,12306 网站的访问量会出现瞬时突增的现象。
再比如,小米秒杀系统,在上午 10 点开售商品,10 点前的访问量比较平缓,10 点时同样会出现并发量瞬时突增的现象。
所以,秒杀系统的流量和并发量我们可以使用下图来表示:

由图可以看出,秒杀系统的并发量存在瞬时凸峰的特点,也叫做流量突刺现象。
我们可以将秒杀系统的特点总结如下:

①限时、限量、限价
在规定的时间内进行;秒杀活动中商品的数量有限;商品的价格会远远低于原来的价格,也就是说,在秒杀活动中,商品会以远远低于原来的价格出售。
例如,秒杀活动的时间仅限于某天上午 10 点到 10 点半,商品数量只有 10 万件,售完为止,而且商品的价格非常低,例如:1 元购等业务场景。
限时、限量和限价可以单独存在,也可以组合存在。
②活动预热
需要提前配置活动;活动还未开始时,用户可以查看活动的相关信息;秒杀活动开始前,对活动进行大力宣传。
③持续时间短
购买的人数数量庞大;商品会迅速售完。在系统流量呈现上,就会出现一个突刺现象,此时的并发访问量是非常高的,大部分秒杀场景下,商品会在极短的时间内售完。
秒杀系统的技术特点
我们可以将秒杀系统的技术特点总结如下:

①瞬时并发量非常高
大量用户会在同一时间抢购商品;瞬间并发峰值非常高。
②读多写少
系统中商品页的访问量巨大;商品的可购买数量非常少;库存的查询访问数量远远大于商品的购买数量。
在商品页中往往会加入一些限流措施,例如早期的秒杀系统商品页会加入验证码来平滑前端对系统的访问流量,近期的秒杀系统商品详情页会在用户打开页面时,提示用户登录系统。这都是对系统的访问进行限流的一些措施。
③流程简单
秒杀系统的业务流程一般比较简单;总体上来说,秒杀系统的业务流程可以概括为:下单减库存。
针对这种短时间内大流量的系统来说,就不太适合使用系统扩容了,因为即使系统扩容了,也就是在很短的时间内会使用到扩容后的系统,大部分时间内,系统无需扩容即可正常访问。

如果你要在性能方面找寻亮点,有个必备条件就是你必须对性能很熟悉,要不面试官会在性能的测试把你问的死死的,当然如果回答的很好,也是可以多要些工资。

比如之前的电商项目,我负责了性能方面的测试,最终成功保障多少用户同时参加抢购,没有bug和性能问题。

拿50W-100W高并发,秒杀功能来说:

QPS(Query Per Second),即一秒内可以处理的请求数量。假如一个服务的RT是20ms,则QPS为50,这里计算的是单机单线程QPS,如果计算集群的话,需要考虑集群数量和线程数量。
这时候需要确认秒杀商品的请求QPS是多少。如果面试官说峰值大概量级在100万,那么按照服务单线程QPS是50,单台最大线程数按3来计算的话,单台机器最大支撑150的QPS,那么至少需要100W/150=6667台机器。
常见的组件最大QPS,mysql单机1000QPS,Redis单机10万QPS。

但是,对于大多数的小白来说,我不建议在这里过多强调性能,毕竟水太深,容易被淹!!!

亮点可以说,经过我们每次迭代测试的版本,上线之后,用户使用过程中很少有用户反馈问题,保障用户使用正常。

每次都会较高版本的迭代测试。

至于难忘的bug:这个主要还是你的电商网站具体的业务。

比如:第三方支付如果有涉及,可以说当时电商这块我最印象深刻的是在调起支付接口的时候,实际上是没有成功的,但是提升成功了 ,后来发现是开发把mock的代码,未及时替换回来,也让我有个提示,无论测试什么最好从业务到数据都应该进行关注。 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

Spring Cloud电商项目亮点有以下几个: 1. 微服务架构:Spring Cloud提供了一套完整的微服务解决方案,将一个复杂的系统拆分成多个独立的服务,每个服务都可以独立开发、部署、扩展和升级。这样可以提高系统的可维护性、可扩展性和可伸缩性。 2. 服务注册与发现:Spring Cloud提供了Eureka和Consul等服务注册与发现组件,可以方便地实现服务的自动注册和发现。通过服务注册与发现,可以实现服务之间的动态调用和负载均衡。 3. 配置中心:Spring Cloud Config提供了集中化的配置管理,可以将应用程序的配置信息集中管理,并支持动态刷新配置。这样可以方便地对应用程序进行配置管理和版本控制。 4. 负载均衡:Spring Cloud Ribbon提供了客户端负载均衡的功能,可以根据一定的策略将请求分发到多个服务实例上,提高系统的性能和可用性。 5. 断路器:Spring Cloud Hystrix提供了断路器模式的实现,可以对服务调用进行监控和容错处理。通过断路器,可以防止服务调用的连锁故障,提高系统的稳定性。 6. 服务网关:Spring Cloud Gateway提供了统一的API网关,可以集中处理所有的服务请求和响应。通过服务网关,可以实现请求的路由、过滤、鉴权和流量控制等功能。 7. 分布式事务:Spring Cloud提供了分布式事务的解决方案,可以保证多个服务之间的数据一致性。通过分布式事务,可以实现对跨多个服务的事务操作的支持。 这些亮点使得Spring Cloud成为开发和构建大规模分布式系统的理想选择,能够提高开发效率和系统的可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值