基于微服务架构的电商平台设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于微服务架构的电商平台设计与实现
摘要:随着国内外电商的不断高速发展、人们消费方式的改变以及物流服务水平的改善,网上购物已成为中国城市居民的一项主要消费方式。
电子商务影响着居民生活的方方面面。
微服务架构是将复杂单体应用服务化,根据业务领域需求拆分成多个小型服务,各个服务独立开发、独立部署,最后通过组合的方式,将各个小型服务关联起来构建完整应用的架构解决方案。
每个服务可以采用不同的技术栈进行开发,不局限于特定的编程语言。
各服务之间使用轻量级的通信机制实现服务通信。
关键词:微服务架构;电商平台设计;实现
引言
随着人们生活水平、消费水平的不断提高以及第三方支付工具的不断完善和发展,国内电子商务平台环境日趋成熟,网络购物也成为人们日常生活中的一项重要内容。
淘宝、京东等电商平台,己经融入到了人们生活的方方面面。
伴随着业务的拓展和需求迭代,电商平台往往需要越来越多的功能提供支持。
对于传统电商平台采用的单体式架构,在项目的发展初期,业务功能较少、代码不太复杂时,由于所有的后台业务逻辑集中在一个应用中,开发、测试的过程较为简单,但随着功能的扩展以及业务需求的不断迭代,单体应用将会变得越来越复杂。
最终,项目在功能新增、维护升级等各方面的问题将会逐渐凸显而愈发严重。
1微服务架构
微服务架构(MicroserviceArchitecture)是一种架构风格,以领域驱动设计为原则,将业务功能分解到各个离散的服务中以实现对解决方案的解耦。
微服务架构是将复杂的单体应用依据业务领域模型进行细粒度的微服务化拆分,每个拆分出来的微服务各自独立部署运维,简化了开发难度,提升了可测试性,从而提升交付的效率和质量。
微服务架构的核心环节就是服务拆分,通常依据业务逻辑、可扩展性、可靠性、性能等维度进行拆分。
微服务架构中的服务发现主要是为了解决服务的注册、服务的维护和服务的发现三个问题。
在实际应用中服务提供者对外都是以集群的方式提供服务,集群中服务的IP动态变化,因此需要服务注册中心维护服务状态,以便服务请求者能够及时获取到对应的服务节点。
当前服务发现主要有两种模式服务端服务发现和客户端服务发现。
对于服务端服务发现,服务请求者无需关注服务发现具体实现细节,直接调用即可。
对于客户端服务发现,客户端与服务端直连,减少去中心化的依赖。
微服务架构中的负载均衡主要是RPC间的负载均衡。
负载均衡模型分为无状态负载均衡和有状态负载均衡。
无状态负载均衡无需关注请求的状态,请求任何实例得到的结果都是一致的,通常使用较多的也是这种。
通常接触比较多的是权重轮询算法,按服务实例的权重分配请求到后端实例。
有状态的负载均衡是在负载均衡策略中会保存服务端的一些状态,然后根据这些状态按照一定的算法选择出对应的实例。
2系统功能性需求分
2.1商品管理模块需求分析
商品管理是电子商务中的一个重要模块之一,它主要是管理这些商品信息,对管理员而言,商品管理模块业务主要是针对商品的分类、品牌、列表和规格的管理。
品牌管理功能:一个商品必然有其相应的品牌,因此品牌管理主要功能首先是对品牌进行查询,查询的方式也需要有多种方式,如品牌关键字或者品牌首字母,在品牌种类比较多时,会涉及到分页查询,同时需要支持对已有品牌进行修改和删除操作,以及新增品牌。
分类管理功能:不同的商品所属的分类应该是不同的。
分类一方面可以在用户对商品进行检索时更加快速,另一方面,可以提高管理员的管理效率。
在分类管理中,采用的是分级管理的方式,这样的方式可以在前端以更为直观的树状图形式进行展示。
同时在分类管理功能中,需要支持对分类的增删改功能。
2.2搜索模块需求分析
搜索模块是非常重要的一个模块,后续的整个商品的购买流程能否继续,取
决于用户是否能够找到自己所需的商品,搜索模块包括商品分类搜索和关键字搜索。
商品分类搜索,主要是通过对商品分类的展示,让用户能够以一个从粗到细
的过程去快速找到自己所需的商品,依赖分级分类的结构,可以将商品进行有效
的过滤,方便用户找到所需的商品。
由于通过商品分类来查找指定商品,有时候就像是大海捞针一般,因此,关
键字搜索服务,使得用户可以通过搜索框直接搜索商品,快速的定位到所需商品。
关键字搜索主要有两种形式,一种是商品分类的关键字,另一种是商品名称的关
键字,对符合条件的数据可以按照一定的排序规则在搜索结果页中进行显示。
2.3购物车模块需求分析
购物车模块的主要功能是负责存储用户计划购买的商品的信息,结合实际的
业务需求,购物车的功能应具备如下功能,存储商品信息。
用户可将计划购买的
商品加入到购物车中,并以列表的形式在购物车中将商品信息展示,包括名称、
单价、数量和总价信息。
品数量修改。
主要是对购物车列表中的商品数量按照需
求进行调整。
删除商品。
主要是将购物车中的商品删除,也可以批量删除。
结算。
在进行结算时,支持仅对选中的商品进行结算,同时显示结算的总金额,当选择
部分商品时,结算的总金额随着勾选商品的变化而动态变化。
3平台详细设计与实现
3.1商品信息展示微服务实现
商品信息展示微服务主要包含商品分类展示、商品轮播和商品搜索功能。
用
户进入电商平台首先看到的是所有商品的分类展示以及商品轮播展示,然后可以
通过商品搜索功能进行精准查找,查找成功后进入商品界面还可以通过点击商品
的规格标签进行下一步的筛选。
商品分类展示模块业务流程。
商品分类展示模块的业务流程是首先用户进入首页,然后在页面左侧浏览商品分类展示,在首页底部还可以看到商品推荐,用户在这个界面可以通过点击商品的图片进入到对应商品的详情界面。
商品分类展示模块核心类设计。
CommodityCf是商品分类实体类,用于向用户展示商品的所有分类信息,通过定义实体类便于数据在各个层之间进行传递。
CommodityCfController是商品管理相关控制类,负责获取并响应用户对商品的处理请求,调用CommodityCfService类相关方法执行具体的业务逻辑。
CommodityCfService类是商品分类展示的业务逻辑处理类,封装了查询商品所有分类的具体方法。
3.2商品推荐微服务实现
基于物品的协同过滤推荐算法。
基于物品的协同过滤推荐算法主要思想,根据所有用户对物品的喜好程度计算出所有物品的相似物品,再根据当前用户对所有物品的喜好程度以及物品之间的相似性程度,从而选中topN个物品推荐给用户。
该算法的优点是相较于基于用户的协同过滤算法而言跳过了计算相似用户,直接计算相似物品,使得算法逻辑更加清晰。
并且计算量与物品数量成正比,适合用户多、商品少的电商平台。
其缺点在于存在冷启动的问题其难点在于物品相似性的计算,目前最为流行的几种计算方法包括皮尔逊相关系数、欧式距离、余弦相似性、谷本系数、对数似然比相似度,使用的是余弦相似性计算物品之间的相似度。
3.3商品搜索微服务实现
商品搜索微服务主要包含关键字搜索、商品规格搜索、搜索结果分页显示和搜索结果排序功能。
用户进入电商平台后根据需求可以通过商品搜索功能进行精准查找,查找成功后进入商品界面还可以通过点击商品的规格标签进行下一步的筛选。
结语
随着互联网用户的爆发式增长,其技术也在不断的更新迭代,传统的单体式架构在开发、部署等方面存在的问题,如模块间耦合严重、代码可维护性差、开发周期长等问题,导致其无法满足目前快速增长的需求。
针对以上的问题,对微服务架构进行研究,并在研究的基础上,以电商平台的设计与实现为应用对象,对所研究的内容进行了实际的应用。
参考文献
[1]钟俊林.基于微服务架构的自助微商城的研究与实现[D].2019.
[2]谭一鸣.基于微服务架构的平台化服务框架的设计与实现[D].2017.
[3]谭一鸣.基于微服务架构的平台化服务框架的设计与实现[D].2017.。