张锦贤
随着科技发展,电商平台在人们日常生活方面的重要性日益显著,也引起了业界关注。目前我国传统行业受管理模式、运营方式等多方面因素限制,向电商化发展仍然存在较为显著的问题,同时电商平台存在技术老旧,高性能、高可用和高擴展性仍然有待改善的问题,无法同时支持跨平台和多终端访问。本文基于信息化、智能化的时代背景,首先对相关理论进行了广泛的搜索和整理,在此基础上运用了类比法和调研法,对大型电子商务平台技术存在的问题展开研究,意图达到寻求符合大型电商平台技术的研究目的。
经过调研分析之后,本研究得出了如下结论:在大型电子商务平台开发建设中可以使用微服务架构技术,将各个功能模块进行分离,实现高性能,高可用性和高扩展性,同时支持跨平台访问和多端设备访问。基于此,本文给出了针对性的策略与建议,希望对未来大型电商平台技术选型提供借鉴与参考。
(一)研究背景及意义
1.研究背景
随着全球经济一体化和互联网行业的高速发展,大型电商平台作为一种新兴业态在我国呈现出爆发式的增长趋势,在促进我国经济转型升级,稳定增长方面也起了越来越重要的推动作用。尤其是近年来疫情带来的影响,传统行业为适应发展加入转型行列,各种电商平台也得到了突飞猛进的发展。
2.研究意义
电商平台由于消费群体基数大,往往会导致短期内的高并发产生。软件开发具有过程不可逆的特征,所以系统的技术底层架构是否能够完全满足业务的使用场景,必须要在项目实施之前进行科学、充分地论证。避免后续项目交付产生重大的技术风险。
(二)案例分析
1.项目背景
某民营500强企业,目前使用的是传统的工厂→渠道商→门店→终端消费者的销售模式。集团谋求全新2C模式发展,打造自营的电商平台,通过S2B2C模式,让品牌商品直达终端消费者和门店,减少中间环节的利益链条和利润损耗。
2.项目总体需求
电商平台系统计划在上线1年内完成1000家的商户入驻,实现1亿GMV和100万用户的目标。电商平台的整体功能包括商家入驻管理、商品管理、用户管理、团长管理、消费者管理、订单管理、营销活动、直播导流、页面装修、数据分析、财务系统和ERP管理模块。另外,计划在系统上线3个月后进行一次秒杀促销活动,根据业务量预估会有5万并发量。
3.项目技术要点
平台的系统结构庞大,但是业务模块要求快速上线,以便能够快速进行市场推广,根据市场的反馈再来调整系统的功能和营销的方案,所以本次项目建设需要采用敏捷开发模式,系统通过每个小版本进行迭代,整体架构需要有很好的可扩展性和兼容性。
因此,本项目对技术的选型有比较高的要求,要求能够承受5万以上的并发量,并且需要后期基于用户量做到动态扩容。同时电商系统具有24小时不能停止运行的特性,本系统对于系统运维和日志管理也有比较高的要求。
基于以上项目背景和要求,我们对本次电商平台项目建设中需要用到的相关技术架构和技术方案进行分析。
(一)该项目技术可行性分析的原则
1.先进性
项目采用Java SpringCloud微服务架构和SpringBoot框架进行开发,该框架是业内公认的发展前沿技术,并且在很多大型的互联网公司得到验证。系统采用Java语言和业内最流行的Spring框架,完全满足技术发展趋势和先进性。
SpringCloud微服务架构相对于传统Java架构具有以下五点优势。
(1) 松散耦合和容错性:微服务架构中各个服务之间是松散耦合的,当一个服务发生故障时可以进行快速定位和修复,不会影响整个系统的正常运行。
(2)弹性伸缩:微服务架构中,每一个服务都可以独立部署和扩容,可以根据业务需求快速添加或删除服务,提高了系统的弹性和可伸缩性。
(3)更好的维护性和可测试性:由于微服务架构中服务的职责单一,相对独立,因此对服务的维护和测试也更加容易。
(4) 灵活的技术选型:微服务架构中,不同的服务可以采用不同的技术栈,可以根据业务需求选择最合适的技术,提高了开发效率和系统性能。
(5)动态更新和版本控制:微服务架构中,每个服务都是一个独立的模块,可以进行独立的更新和版本控制,避免整个系统因为一个小的更改而进行大规模的重构。
2.适应性
项目采用SpringCloud的consul注册中心,采用动态配置方式和自动负载均衡的方式,满足系统配置和动态扩展。
3.稳定性
项目采用微服务架构,每个服务都有几个实例在运行,并且分布于各个虚拟机或容器,不存在单点故障问题。由于系统采用可伸缩的架构,在高并发的时候,可以动态的增加资源来抵御性能的涌浪,处理旺季高并发。系统并且提供了分布式作业系统,可以很好地处理大量报表集中的问题。
4.安全性
系统在架构的安全性上,对外访问只提供了Https的网关,只有一个入口,可以很好地保障传输过程。
在系统内部的认证上,采用了JWT的Token机制,保障分布式认证和内部认证的安全性,系统采用了完善的日志机制,记录各种风险的操作,保障在事前事后能做审计和记录。
(二)技术选型
1.技术选型总概况如图1所示。
2.项目开发语言选型
项目的后端语言采用Java为开发语言,具有稳定性和较完善的生态圈,是目前后台开发的主流语言。
3.分布式框架选型
项目后台开发框架采用springboot框架和springcloud分布式微服務框架,springboot是springmvc的改进和敏捷版本,是目前主流的框架。
SpringCloud是目前主流的微服务框架,目前在互联网大平台得到广泛的应用,滴滴打车平台和美团均采用了springcloud框架。
4.前端框架
前端H5和管理平台采用Vue.js作为开发框架。Vue.js是最近两年发展迅猛的框架,在开发效率和稳定性都非常好,是目前前端主流开发的3大框架。
5.ORM框架
现代系统开发使用的数据库都需要使用ORM,本次采用了Mybatis作为ORM框架,其采用的ORM转换、性能处理及SQL映射的方便性和灵活性都非常好。
(三)总体架构
1.总体框架如图2所示。
2.接入层管理
接入层主要采用Nginx处理接入。通过采用双Nginx入口的方式,在负责均衡和性能上有突出的表现。
在微服务的网关接入层,需要进行动态网关路由,因此采用了Springcloud的组件Zuul,可以根据发现服务Consul注册的微服务进行动态路由。
3.中间件层
中间件层主要包括发现服务和缓存服务,发现服务Consul主要保障分布式治理的CAP原则,包括了统一的配置管理、统一发现服务、统一的故障检测服务。当微服务向Consul注册的时候,Consul会自动做健康检查和统一的发现服务。在Consul注册的机器中,Zuul能主动发现,并且多台机器能进行自动负载均衡处理。
Redis服务主要进行缓存和内部队列安排,在一些推送、轮询的业务处理上,将数据库的压力释放在Redis上,并且用户体验更好。
4.微服务结构
微服务是核心的业务架构,每个业务功能均采用Springboot框架,并且服务和服务之间调用通过Feign进行调用。
每个微服务均可以注册到Consol服务发现中,并且可以自动负载均
本文笔者在担任企业见习项目经理一职期间,带领项目团队,通过对项目的开发语言选型、前后端开发框架、ORM框架、数据库分表分库框架和系统的整体架构等技术做全面分析,为后续项目实施、测试提供技术指引,有利于项目建设,从而提高项目的可行性和成功率,同时也给同类型项目提供案例借鉴。
作者单位:广州商学院
基金项目:广东省高等教育学会“十四五”规划2021年度高等教育研究课题“大学生德智体美劳全面而有个性发展评价改革研究——大学生德智体美劳评价平台探究与设计”(21GQN62);2020年度广东省普通高校特色创新项目(自然科学)“校园网络安全态势感知关键技术研究”(2020KTSCX169)。