- 基于SpringBoot和Dubbo的电商秒杀系统的设计与实现
随着互联网行业的飞速发展,越来越多的人加入网购阵营。每年的“双十一”、“618大促”等狂欢节,都是成千上万人疯狂网购的结点,庞大用户量随之带来了对购物平台服务器抗压能力的巨大挑战。因此,秒杀系统设计随之而来。它需要具备隔离、流控、消峰、限流、降级、热点和容灾等功能。尽最大可能保障平台热促品在某个极短的时间内,具有安全有效的交易能力,否则因服务器被短时间内巨大流量冲击而崩溃带来的损失是不可估量的。
(一)国内外研究现状
秒杀活动作为一种吸引顾客、聚集人气的销售手段,极大的刺激了消费者的购买欲望。在秒杀活动中,秒杀商品要么价钱超低于市场价,要么十分稀缺,一般都会在有限的时间内,以限定的数量被销售。因为这些商品对消费者的诱惑力是巨大的,往往在活动开始的几秒钟内就被售罄。一个支持高并发高可用、可伸缩可拓展的秒杀系统对电商平台而言具有相当的现实意义。
国内方面:国内学者朱丽叶在《面向电商平台的秒杀系统设计与实现》提出一种基于LVS配合nginx搭建商品秒杀系统的网关层,实现流量的高效分发并对恶意流量进行限制的限流方法。在综合比较SpringBoot、SpringMVC、SpringCloud等开源业务框架后决定采用SpringBoot框架作为业务层服务框架。朱学者提出使用dubbo分布式服务调用框架配合hystrix容错机制搭建了分布式的业务层的微服务集群,本文拟使用dubbo分布式服务,它还有一个优点是可以和Spring框架无缝集成。
国外方面:在《Development of Distributed E-commerce System Based on Dubbo》一文中,作者实现了一个基于分布式Dubbo体系结构的电子商务系统。采用spring boot与MyBatis相结合的框架来实现实现业务功能。在持久层,MySQL用于数据存储,redis采用缓存技术对易并发访问的数据进行缓存,以降低并发性数据库服务器的压力,提高了访问效率。
国内外在处理大流量的相同点基本都是,利用主流的Dubbo框架处理RPC请求,利Springboot、MyBatis等来实现业务功能,拟打算在Nginx层多一些处理,能有效过滤更多黄牛和刷子请求。
(二)研究主要成果
Nginx: Nginx 最早被发明出来,就是来应对互联网高速发展下,出现的并发几十万、上百万的网络请求连接场景的,传统 Apache 服务器无法有效地解决这种问题,而 Nginx 却具有并发能力强、资源消耗低的特性。总的来说,Nginx 有 5 大优点,即模块化、事件驱动、异步、非阻塞、多进程单线程。它由一个 master 进程和多个 worker 进程(可配置)来配合完成工作的。其中 master 进程负责 Nginx 配置文件的加载和 worker 进程的管理工作,而 worker 进程负责请求的处理与转发,进程之间相互隔离,互不干扰。同时每个进程中只有一个线程,这就省去了并发情况下的加锁以及线程的切换带来的性能损耗。
SpringBoot: Spring Boot是由Pivotal团队2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。
Redis: Redis(远程字典服务),是一个开源的使用ANSI、C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。