400-800-9385
网站建设资讯详细

高并发的电商平台如何实现

发表日期:2022-08-18 15:51:01   作者来源:蓝明基   浏览:900   标签:电商平台开发    高并发网站开发    
摘要伴随着社会的不断发展,人们的生活水平和消费水平也在不断提高,我国的支外支付平台的不断完善,网上购物成为人们日常生活中的重要内容。天猫、淘宝、拼多多等电子商务平台也逐渐融入人们的生活。过去,传统的电子商务平台使用了一种单体系结构,目的是将整个业务逻辑集中在一个应用程序中。但是,随着业务的不断扩展,平台的流量、功能和要求也在不断增加,这种单体架构模式的应用在功能拓展以及维护的时候都会越来越麻烦,还有抗并发的能力也满足不了现在的需求。
本文根据上述要求和难点,设计并实现了一个基于微服务的高并发电子商务平台。根据微服务体系结构的思想,将整个系统分为六个微服务。这些微服务是单独开发和实施的。采用ngnix、sentinel、redis和rabbitmq等技术实现了请求路由、请求流约束、缓冲和异步请求处理,从而提高了系统的可扩展性和高并发性能。本文详细介绍了各个微服务的功能,结合电子商务平台本身的要求,提出了系统的总体功能需求和非功能需求,通过平台架构图展示了微服务体系结构的构建模式,并通过E-R图论证了平台中不同主体之间的关系。根据系统大纲的需求分析和设计内容,采用springmvc、springboot、springcloud、mybatis、Vue、redis和rabbitmq等技术实现了基于微服务的高并发电子商务平台。最后采用黑盒测试方法对系统功能进行了测试,保证了系统的高可用性、高性能和高并发和稳定性。
而经过早期开发和测试,基于微服务体系结构的高并发电子商务平台能够在不同环境下可靠运行,各种不同的任务可以通过不同微服务模块之间的正常协作完成。电子商务平台可以很好地满足三种类型的用户:高并发和大规模数据环境下的买家、商家和后台管理人员。
 
【关键词】电商平台;微服务架构;高并发
 
 
1引言
1.1项目背景及意义
伴随着互联网技术的快速发展,电子商务系统日趋成熟和完善。近年来,它在我国的经济组成中发挥着重要作用。而正是由于国内电子商务的快速发展,各类电子商务平台已经融入人们的生活,网购已经成为人们日常生活中非常重要的一部分。
而由于我国网络用户数量庞大,电子商务平台的发展将来将面临高并发化的问题。而且随着电子商务市场的发展,人们对电子商务平台的需求会越来越大,这说明着电子商务平台的业务逻辑将会变得越来越复杂,技术难度也会越来越大。传统的电子商务平台在实际开发中采用单一的体系结构构建整个电子商务平台,用户需求小、平台规模小的时候该方法易于开发。当用户需求较大时,该方法混淆了整个电子商务平台的内部逻辑,使得开发人员难以进行扩展和维护,大大降低了对高并发能力的支持。从而构建逻辑清晰、易于开发维护的电子商务平台就显得的越来越重要。
微服务体系结构是一个复杂的结构体系,根据简单、灵活、独立的功能模块分为一些独立的微服务。该基于微服务体系结构的平台逻辑简单,易于开发和部署,扩展性高并且维护性强,能够满足未来电子商务平台的发展需求。
1.2国内外研究现状
国内领先的大型电子商务企业有京东、阿里巴巴、拼多多、当当等。他们的电子商务平台也占据了国内市场的大部分,并且他们电子商务平台的模式却十分相似。早期的电商平台,主要通过静态HTML网页向用户显示商品信息,然后用户在线下跟商家联系,完成与商家的交易。后来电子商务平台已从原来的静态网页转变为能够与用户交互的动态网页。初期,由于用户数量少,需求大,电子商务平台逻辑比较简单,整体规模小,所以是用单一的体系结构开发的,一个系统包含全部功能。
而随着用户数量的增加和各种需求的增加,传统的单一体系结构电子商务平台逐渐暴露出一些薄弱环节,如功能难以拓展、后期维护困难、并发能力差等。而随后,分布式体系结构和分布式缓存技术出现解决了大量用户访问带来的高并发问题。但是,近年电子商务用户的暴增,高并发的压力越来越大,之前的分布式体系结构已经不能现在的发展需求。本文正是在这种背景下,我国京东、淘宝等电子商务平台都开始去采用微服务体系结构来重构之前所用的那种架构。多年来,在天猫的双11日和京东618日中,基于微服务体系结构的重构电商平台满足了人们的期望,经受住了巨大的流量和巨大的高并发。我国的电商平台将进入微服务体系结构时代。
国外电商平台发展的比较早。长期发展后,产生了亚马逊等优秀的企业。当然,国外的电子商务平台最初也采用单一的体系结构,之后随着用户数量的增加和各种需求的增加,单一体系结构的缺点也出现了。面对上述问题,刘易斯和福勒在2014年精确地定义了微服务体系结构是一种体系结构模式,将单一和复杂的应用程序划分为一些能够相互协调和协作的小型和独立服务。亚马逊等电子商务平台已经利用其固有的优势,将微服务体系结构的理念应用于他们的平台当中去。当前,虽然电商业务在世界范围内发展迅速,但美国的电子商务水平仍处于世界领先水平。
 
2相关理论技术概述
2.1 SpringBoot技术概述
Springboot是一个全新的框架,更新了原有的模式。开发人员不需要反复配置某些资源文件而是采用统一的资源配置方式,这样提高了项目前期建设和开发过程的效率。并且在Spring原有结构的基础上,对资源配置采用了具体的设计方法。并同时集成了其一些优良特性,解决了版本冲突的问题。后来spring boot在开发领域就得到了广泛的应用。springboot框架有两个基本功能:开箱即用和约定大于配置。开箱即用意味着开发人员不需要去配置相应的资源包,并且资源在项目启动时自动加载资源包,它可以使用Maven组件在POM文件中配置一些项目所需的资源依赖包,然后使用注解来实现自动注入资源,以取代繁琐的XML文件配置,从而完成对象的生命周期管理。这样开发人员就可以避免浪费太多的时间进行资源分配和管理,而只关注业务本身。约定大于配置的实质是行为范式。在软件开发过程中的一些原则是按照约定的设计规范进行定义的,它设计目的是为了避免在设计中浪费太多的时间来决定某些规则,以便于快速地进行简单灵活的开发工作,开发者只需要确定哪些内容不符合设计中的规则。
2.2 微服务架构概述
微服务架构是分布式体系结构,即微服务体系结构根据不同的功能模块将复杂的系统划分为粒度更小的微服务。各个微服务之间相互配合且相对独立。微服务体系结构最初是从SOA体系结构演变而来的,后来随着用户数量急剧增加。SOA体系结构已经满足不了需求复杂、并发强、数据量大、吞吐量高等情况的电商平台。微服务体系结构强调的是服务的粒度应该很小,然后通过将应用程序和服务分解为更小且可以进行独立开发、测试、部署和维护的服务。具有效率高、扩展性强、响应快和高并发性的特点。而微服务体系结构需要在进行拆分时应保证体系结构的稳定性;各种微型服务的划分在内部应该是非常一致的。各微服务都是松散耦合的;微服务是为了弥补单一体系结构存在的扩展性差、开发难度大、抗并发能力差等问题。并且微服务体系结构具有以下优点:每个微服务只负责一个业务模块,代码非常聚合。各微服务之间的连接性较低,因此各微服务相对独立,易于独立开发、测试、部署、维护和扩展。
2.3 SpringCloud技术概述
SpringCloud基于SpringBoot简化了分布式系统基础架构的开发,如服务注册和发现、服务网关、断路器、数据监控、配置中心、服务调用和负载均衡。开发人员可以使用这些工具快速构建基于微服务体系结构的系统。Spring Cloud平台的基本功能包括服务注册和发现、服务网关和配置管理。
服务注册和发现:它是SpringCloud提供的注册中心之一,其中包括SpringCloud Alibaba Nacos、Netflix Eureka、Apache zookeeper等组件。本文采用Nacos。Nacos可以提供服务注册和服务发现。服务注册的目的是注册微服务名称、微服务操作主机的IP地址和外部提供的端口号等信息;服务发现是当需要使用某一个服务时,可以从注册中心中获取可以使用的服务信息,客户端凭借此信息可以连接上服务气端。
服务网关:负责处理HTTP服务请求和连接。有Spring GateWay,Netflix Zuul等。本文采用Spring GateWay网关惊醒请求路由和用户鉴权等。网关是微服务体系结构中外部所有请求的统一接入点。其主要功能包括身份验证、请求分配、负载均衡、路由管理等功能。
服务调用:即一个服务调用另一个服务。在微服务体系结构中,服务之间必然存在连接。本文采用了Feign组件进行服务之间的调用。Feign是一个更方便的HTTP客户端。您只需创建一个接口,然后在其上添加注解即可。将需要调用的方法定义成抽象方法,并不需要自己构建 HTTP 请求。需要调用的服务引入这个接口,调用里面的方法这样就完成了服务之间的调用。
服务熔断:本文采用了Sentinel。由于服务共享问题,一个业务的请求链路通常很长。当用户发起访问请求时,通常需要几个微服务来执行它们。高并发场景下,请求调用链对系统的稳定性有很大影响。如果其中一个服务链路中存在网络延迟等情况导致这个服务不可使用,导致请求阻塞,这可能导致服务雪崩连锁效应。服务熔断是用来解决这种情况的。当某一个服务无法正常提供服务时,它会将当前接口与外部进行隔离并且触发服务熔断。此后一段时间内,请求方的请求将直接失败,直到这个服务恢复。
2.4 Redis技术概述
Redis是一个高性能的非关系的开源数据库,它以键值对的形式保存和检索数据。Redis采用C语言编写,并提供了用于数据管理的原子操作,它与其他非关系数据库不同,具有更丰富的数据类型和更复杂的数据结构。但与此同时,Redis不仅可以作为缓存,而且还可以作为持久型数据库使用。比起复杂的磁盘数据操作,内存中的数据管理相对更加简单一点,其效率更。因此,在复杂的操作中,Redis可以完成很多工作。当数据存储在磁盘中时,磁盘上的文件以尾部追加的方式将数据存储在文件末尾,这可以避免从磁盘检索数据到内存中时出现的随机访问,从而极大地提高了查询性能。Redis经常用作缓存以提高查询的效率。缓存技术是指从磁盘读取数据后将数据备份到内存中。查询数据时,必须先读取内存中的数据。如果无法读取它们,则在磁盘上读取它们。同时将读取的数据备份到内存中。内存中的数据读取速度比磁盘快数百倍,所以当经常需要读取某一数据时,将它备份到缓存中,可以在缓存中快速地获取数据,以避免访问磁盘来重新读取数据。对于一些大型的系统,使用Redis缓存技术可以大大提高频繁访问数据的速度。
2.5 ElasticSearch技术概述
ElasticSearch是一个分布式、可扩展和实时性高的全文搜索引擎。而在各种搜索引擎中,Apache Lucene被公认为最先进、最高效、最全面的搜索引擎库。ElasticSearch就是以它为基础的。它需要集成到应用程序中,才能发挥其强大的作用。ElasticSearch是用Java编写的,并使用Lucene构建其索引进行检索。采用简单API来完成全文检索功能。比起Lucence的复杂性,ElasticSearch明显更简单、更方便。ElasticSearch的实现原理主要分为以下几个步骤:用户先将数据上传到ElasticSearch数据库,然后通过分词控制器将相关句子分割成单词,并将其权重和分词结果存储在数据库中,用户搜索时根据权重以及分词的结果将结果返回并呈现给用户。ElasticSearch是开箱即用的,将全文检索、分布式技术以及数据分析技术结合在一起,可以近乎实时的检索和储存数据,可扩展性强,可以处理百万级别的数据。
 
3微服务高并发电商平台的需求分析
3.1 功能性需求分析
功能的需求决定了电商平台必须提供的功能服务,对功能进行分析划分出平台必须完成的所有功能。经过早期对用户和市场的调研,微服务高并发的电商平台功能模块主要可以划分为如下六个微服务,分别是商品微服务、订单管理微服务、购物车管理微服务、用户管理微服务、秒杀微服务和评论微服务。
3.1.1 商品微服务的需求分析
商品微服务是微服务高并发电商平台最重要的模块之一。此微服务提供的功能包括门户系统的商品信息的展示,如商品标题、图片、价格、品牌、分类等,商品的搜索,如按条件搜索、排序等搜素展示商品的信息。还有后台的商品的管理,包括商品的增加删除修改查询,商品品牌的增加删除修改查询,商品的收藏查询,商品的浏览记录等功能。商品微服务功能用例图如图3-1,3-2所示。

 

图3-1  商品微服务用户功能用例图
 

图3-2  商品微服务管理员功能用例图  
 
如没特殊注明,文章均为方维网络原创,转载请注明来自https://www.szfangwei.cn/news/6509.html