ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:1.88MB ,
资源ID:9400004      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9400004.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于微服务的新星购物电商系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于微服务的新星购物电商系统.docx

1、基于微服务的新星购物电商系统基于微服务的新星购物电商系统的设计与实现摘要:这几年来,随着互联网的技术的快速发展和人们生活水平和质量的不断上升,在网上购买物品逐渐成为了人们日常生活中不可缺少的一部分,所以电子商务系统使用的技术也经历了非常快速的发展。 随着业务的扩展和需求的迭代,电子商务平台往往需要支持越来越多的功能。 对于传统的单架构电子商务平台的开发与实现, 随着需求的增长,函数间耦合严重,代码难以维护,在线成本高,服务的可扩展性等问题将越来越严重。针对单体系结构电子商务平台存在的这些问题,实现了一个基于微服务体系结构的电商系统平台。根据业务功能的界限,系统分为六个相对独立的业务服务,包括商

2、品微服务,商品搜索微服务,订单支付微服务,购物车管理微服务,用户中心和认证服务。 每项服务都经过单独设计和实施,有效地减少了系统各个模块之间的耦合,提高了系统的灵活性。 除了业务服务模块外,还利用Springcloud的Eureka,Zuul,Config服务器和Feign等组件分别实现了服务日志发现,路由网关转发,分布式配置管理和声明式接口等功能。关键词:购物,微服务,互联网 第1章 绪论1.1 系统开发的背景及意义所谓的电商购物系统,是能够支付网上交易和支付金钱的全过程,所以就具有网上付款,网上购买,产品广告和网上询问等功能,主要体现在网上购物和网上支付。从自身角度来看,方便了购物,省下了

3、时间;从企业角度来看,提高了商品的知名度和扩散度,使得买卖双方节省了一定的金钱。互联网的快速发展,使得电商系统应运而生,并且推广速度极快,给当今传统企业或现代企业带来了巨大的影响和无限的商机。互联网和全球信息网络应用的快速发展为企业提供了一个无边界、永恒和地理便利的经营和拓展业务环境,开发电商系统是提升企业竞争力的强有力的手段之一。它是传统业务和创新技术在激烈的市场竞争中迸发而出的完美产物,为企业提供了新的商机和管理模式。1.2 国内外研究现状这几年来看,随着互联网技术和网上支付的技术等相关技术的飞速增长,互联网慢慢的改变着人们的生活方式。互联网是收集信息的良好方式,并逐渐的在发展。因此,电商

4、系统势必会是以后的主流,会有更多的实体公司有计划的建立网上商城,向消费者表现一种全新的购物手法,所以会成为了一个新的销售行业,电商购物系统的优点已经是被很多的人所发现并接受。但是从时间方面上来看,提出开发的电子商务平台时间不长,但发展速度已达到惊人的程度。国外许多网站,不仅提供在线浏览,浏览,购物等功能,而且提供更人性化的在线测试等功能,利用图像技术,可以让人们先观看详情详情后再去打算是否购买。让人体会到网上购物的种种优点。在我们国家,电商系统起步相对于别的比较晚,但是它的发展势头很猛,压根难以抗拒,在短短几年期间,各大电子商务企业成倍增长,纷纷登顶,跃跃欲试。同时,国家的政策的大力鼓励吗,为

5、我国的电商网站的多种化,国际化,实用化打下了坚实的基础。根据一些报告可以看出目前的总体趋势,在线购物中心的未来将不可避免地成为市场不可分割的一部分。1.3 微服务电商平台微服务电商平台是公司资深架构组基于“高内聚、低耦合”的战略思想搭建的开发快速、服务运行独立的平台,封装了Spring cloud、Redis、ElasticSearch等底层组件,易于与Idea集成工具结合开发,通过Maven下载所需依赖,就可以构建完整的项目依赖。利用Node.js及Vue.js技术栈,实现前后端分离开发;通过Nginx反向代理可以实现通过本地域名来访问我们的电商购物系统;我们的网站的权限管理和控制采用的是J

6、WT鉴权策略,对使用者和一些私密的接口进行了某些权限方面的控制;利用FastDFS解决大数据量的分布式文件存储问题,利用Elasticsearch高级聚合功能,实现商品的智能过滤搜索,利用RabbitMQ实现可靠消息服务,解决服务间通信问题和解决分布式事务问题。利用Redis搭建高可用集群,实现可靠缓存服务即热点数据保存。1.4 论文的主要研究内容、相关技术和目标1.4.1 研究的主要内容新星购物电商系统的核心技术主要在于多线程和高并发,后台的数据库主要采用的是MYSQL数据库。研究的主要内容有以下几点:1.用户中心:注册用户、使用者的登录、使用者浏览商品并实现购物、产生订单等。2.购物车微服

7、务:使用者能够在我的购物车中添加自己喜欢的商品、修改想要购物的商品数量、删除不想要的商品、清空自己的购物车商品等。3.订单微服务:通过购物车中商品生成订单、查看我的订单、查看某个订单的详细、订单在线支付等。4.商品微服务:商品的上下架、商品图像上传、查看商品详细信息、编辑商品、删除商品。5.搜索微服务:准确的搜索推荐、搜索过滤等。6.支付服务:微信支付、货到付款。1.4.2 相关技术前端技术前台系统使用的是HTML页面,页面的样式是通过CSS来控制的,并且通过JavaScript来达到一些前端实现的功能。后台页面是使用vue来写的,利用axios来调用后台接口。二维码的生成是通过QRCode.

8、js来实现的。后端技术整体使用的是spring框架,数据库用的是MySQL和Redis,搜索索引库用的是Elasticsearch,域名代理用的是Nginx,文件上传是通过FastDFS来实现的。消息队列使用的是RabbitMQ,数据库层用的是MyBatis3。1.4.3 目标本课题最终预计达到如下几个目标:(1)界面的设计好看养眼,用户有良好的交互感觉。(2)功能独立性强:商品、订单、搜索、支付等服务相对而言比较独立。(3)满足用户对购物的大部分需求,系统性能的反应速度满足如今快节奏生活的需求。第2章 系统需求分析2.1 系统的需求分析新星购物电商系统的整体框架主要分为两个部分,一部分是前台

9、的商城功能,包括使用者注册,网上购物,订单管理,网上付款等操作;另一部分是后台管理系统的功能,这一部分包括:商品规格参数的增删改查,商品的增删改查,品牌的增删改查。新星购物电商系统功能如图2.1所示:新星购物电商系统的需求如下图2.1: 图2.1 系统功能图前台商城模块:(1)使用者注册:使用者注册成为为网上商城的用户。使用者注册商城账号的时候只需要填写使用者姓名、使用者密码、使用者联系电话即可。(2)商品浏览:使用者浏览商城系统,将自己喜欢并且想要购买的部分商品放入到自己的购物车当中,也能够在商品的详情页中添加商品到购物车中,可连续添加商品。(3)购物:用户选完商品后就进入到自己的购物车页面

10、,可以看到自己喜欢并且想要购买的东西,而且还能够修改某一个物品的数量和删除某些商品、甚至可以清空整个购物车。(4)订单功能:顾客确定购物车中的商品后提交订单,然后等待用户支付,用户付款完成后,等待商家后台的反应,成功支付就会进入物流阶段。后台管理模块:(1)品牌管理部分:网站的拥有者可以对品牌的各种参数进行增、删、改、查等相关操作。(2)商品管理部分:网站的拥有者可以添加、修改、查询、删除商品。并可以编写商品详情信息,对商品的价格,显示的图片等进行增删改操作。2.2 数据流图1.购物系统的数据流图顶层图如下: 顶层数据流图分别有两种角色:管理员与会员。顶层数据流图描述了会员与管理员各自可以操作

11、功能模块,产生的数据流等。如下图2.2所示:图2.2 网上购物系统的顶层图2.购物系统的用户功能数据流图如下:用户的数据流图标明了用户可实现的各种操作,也表明了各种操作成功失败后了后果,让人对用户的权限和功能一目了然,同时数据的流向也是很清晰的。如下图2.3所示:图2.3 用户功能的数据流图3.查询功能的数据流图如下: 下图描述了商品查询功能的数据流向情况,将各种操作细化,可以得到如下图2.4所示的数据流图:图2.4 查询的数据流图2.3 数据字典(1)数据存储描述表2-1给出了用户信息的具体组成数据。 表2-1用户信息描述数据流用户信息数据流出处数据库的用户表。数据去处用户界面。数据流构成用

12、户名,用户密码。表2-2给出了订单管理的具体组成数据。表 2-2订单管理描述数据流订单管理信息数据流出处数据库的订单表 数据去处用户订单详情界面数据流构成用户ID、订单ID、商品名、订单支付状态,创建订单的时间,支付的时间。表2-3给出了商品信息的具体组成数据。表 2-3商品管理描述数据流商品信息数据流出处数据库的商品表、商品sku表,商品规格参数表数据去处搜索商品界面、商品详情界面数据流构成id、商品名称、价格、照片、描述、商品的规格参数、分类、上下架(2)数据处理描述表2-4 描述了用户在注册页面输入正确用户名、密码和验证码,系统对输入的数据进行验证,如果数据库里没有存在此数据显示注册成功

13、。表2-4用户身份验证处理逻辑名称用户注册验证简述检查输入信息的合法性输入的数据流用户名+密码+验证码处理过程验证用户输入的用户名、密码和验证码与数据库的用户表存在是否一致输出的数据流用户登录、商品信息表2-5具体描述了当用户成功登录系统后,通过商品名搜索商品的信息,再根据查询后返回的数据显示在界面上。表 2-5商品信息搜索处理逻辑名称商品信息搜索简述检查输入信息的合法性输入的数据流商品名处理过程通过用户输入商品名进行数据库检索,查询具体商品信息输出的数据流订单信息,商品信息。2.4 实体关系图(E-R图)商品信息实体有商品名称,图片,描述,二级类别等,具体如图2.5所示: 图2.5 商品信息

14、E-R图订单信息实体有订单状态,订单创建时间,订单编号等,具体如图2.6所示: 图2.6 订单信息E-R图系统整体的实体ER图,用户可以添加购物车,有多个收货地址,对应多个商品,详情如图2.7所示:图2.7 系统E-R图2.5 本章小结本章对系统的整体功能进行了分析,设计了用户、商品、订单、搜索等微服务功能模块,也对这些功能模块进行了详细的分析,明确了各个功能的定位和需求,也确定了各个功能之间的联系,明确它们的作用,对接下来的开发有很大的帮助。第3章 系统设计3.1 系统设计3.1.1 系统总体架构设计图3.1 系统总体架构由图可知,新星购物电商平台总体架构分为三层: 表现层:用到的技术vue

15、、node.js、WebPack打包工具。业务层:商品微服务,订单微服务,搜索微服务,购物车微服务,支付服务,为各类业务开发提供公用接口,提供系统基础服务设施,使得业务开发能够快速便捷,采用“高内聚、低耦合”思想进行开发,使得各个具体业务之间减少依赖,运行灵活。数据层如图所示,主要分为三部分:数据存储部分,使用了MySQL关系型数据库来存储重要的数据,Redis分布式缓存数据库来存取一些读取要求高的数据,ElasticSearch分布式索引库来存取商品信息数据;数据访问部分,包含Model、Mapper等查询与结果集映射接口;系统框架部分,采用基于Spring Cloud与Spring Boo

16、t搭建的一站式微服务系统,包含服务的注册、客户端的负载均衡、系统的全局配置、熔断器与服务网关等一系列微服务组件。3.1.2 数据库设计新星电商购物系统使用MYSQL数据库来存储重要数据。本小章节对系统用到的数据库表的结构进行了详细的设计。根据第三章的系统需求分析,系统需要建立一些数据库表来保存一些相关的信息,如商品信息、品牌信息、商品分类信息等一些数据库,以下是对上述一些主要数据库表的设计:(1)Tb_brand(品牌信息)表 表3-1 Tb_brand表列名数据类型可为空注释idlong(30)NOT NULL品牌idnamevarchar(32)NOT NULL品牌名称imagevarch

17、ar(128)DEFAULT 品牌图片地址lettervarchar (1)NOT NULL DEFAULT 品牌的首字母表3-1给出了存放商品信息的数据库表结构,表中各字段代表的含义在第四列“注释”中有具体描述,该表的主键为id。(2)tb_category (商品类目)表该表为商品分类表,用于保存商品的分类信息。表结构如表3-2所示:表3-2 tb_category表列名数据类型可为空注释idlong(20)NOT NULL分类的idnamechar(32)NOT NULL分类的名称parent_idlong(20)NOT NULL父亲节点的id,最高级填0isParentintagr(1

18、)NOT NULL是否是父节点,0为否,1为是sortint(10)NOT NULL排序(3)sku (具体的商品实体)表 该表为具体的商品实体表,用于记录商品的基本信息,表结构如表3-3所示:表3-3 sku表列名数据类型可为空注释idbigint(20)NOT NULLsku idspu_idbigint(20)NOT NULLspu idtitlevarchar(256)NOT NULL商品标题imagesvarchar(1024)DEFAULT 商品的图片pricebigint(15)NOT NULL DEFAULT 0销售价格,单位为分indexesvarchar(32)DEFAUL

19、T 特有规格属性在spu属性own_specvarchar(1024)DEFAULT sku的特有规格参数键值对enableint(1)NOT NULL 是否有效,0为无效,1为有效createTimedatetimeNOT NULL添加商品的时间lastUpdateTimedatetimeNOT NULL最后修改商品的时间(4)spu(抽象性的商品)表表3-4 spu表列名数据类型可为空注释idlong(20)NOT NULL主键titlevarchar(128)NOT NULL DEFAULT 标题sub_titlevarchar(256)DEFAULT 子标题cid1bigint(20)

20、NOT NULL1级类目idcid2bigint(20)NOT NULL2级类目idcid3bigint(20)NOT NULL3级类目idbrand_idlong(50)NOT NULL商品归属的品牌idsaleableint(1)NOT NULL 是否上架,0为已下架,1为已上架validint(1)NOT NULL 是否有效,0为已删除,1有效createTimedatetimeNOT NULL创建商品的具体的时间节点lastUpdateTimedatetimeDEFAULT NULL最后修改的时间节点表结构如上表3-4所示,该表为抽象的商品,比如华为手机,用于记录商品的抽象信息。(5)

21、tb_spec_param (规格参数组下的参数名表)表该表为规格参数组下的参数名表,表结构如表3-5所示:表3-5 tb_spec_param表列名数据类型可为空注释idlong(20)NOT NULL规格参数表的主键cidbigint(20)NOT NULL商品分类idgroup_idbigint(20)NOT NULLname插入(250)NOT NULL商品的参数名numericLong ( 1 )NOT NULL是否是数字类型参数,true或者是falseunitvarchar(150)NOT NULL 数字类型的单位,非数字类型的为空genericlong(1)NOT NULL是否

22、是商品普遍的属性,true或者是falsesearchinglong(1)NOT NULL是否可以用来做搜索过滤的字段,true或者是falsesegmentsvarchar(1024)DEFAULT 数值类型参数3.1.3系统的功能模块设计1.用户注册模块 用户注册是用户能够登陆新星购物系统的前提,用户想体验完整的购物体验必须先要进行注册。用户注册流程具体如下,进入注册页面,填写注册信息,前端会验证输入的格式问题,当验证无误后,再到服务器验证,服务器验证也无误后,用点击“注册”按钮进行用户注册,系统会对用户输入的手机接收的验证码进行验证,验证成功跳到登录页面。具体的流程图如下图3.2所示:图

23、3.2 用户注册流程图2.用户登录模块用户在登录页面输入用户名跟密码,点击登录按钮,服务器进行数据验证,存在此用户则登陆成功,用户名不存在或密码错误,出现登录失败,用户重新登录,具体的流程图如下图3.3所示:图3.3 用户登录模块3.搜索商品模块 搜索商品模块是用Elasticsearch索引库做的,所以他的搜索速度是十分快的,而且可以根据商品的规格参数进行搜索,点击对应的商品参数,就会显示相应的商品信息。也可以根据输入的搜索关键字搜索,会出现对应的大量商品信息。具体流程图如下图3.4所示:图3.4 搜索流程图4.用户购物模块 用户购物模块包括了信息网站的大部分功能,包括浏览商品,查看商品详情

24、,购物车,结算订单等功能,如果用户是未登录状态下结账的,那么就会提示用户登录,用户登录成功后会把浏览器本地的购物车内容放到相应用户的购物车当中去,本地浏览器的内容就会被删除。具体的购物流程图如下图3.5所示:图3.5 购物的流程图详细的流程说明:1.用户在商城页面浏览商品。2.用户把喜欢的商品加入购物车。3.用户在购物车页面点击结算。4.如果用户未登录,跳到登录界面,如果发起请求者已经是登录状态,那么久会直接跳到订单界面。5.用户提交订单,会生成一个支付二维码。6.用户支付成功,等待物流配送。3.2 本章小结 对系统的整理框架进行了设计,主要运用了spring全家桶的技术,前端使用了vue,数

25、据库使用了MySQL和Redis,同时也使用了索引库来提升用户的查询商品的速度需求,同时也对数据库的具体的细表进行了设计,包括订单详情表,商品规格参数表,商品信息表,商品详情表等表的设计,加深了对表与表的关联关系和数据库的各种操作的了解。第4章 系统实现4.1 环境实现4.1.1. Eureka注册中心(微服务拉取)技术描述:Eureka就类似于滴滴搭车,负责管理、收集服务提供者的全部信息。服务的调用者不用自己寻找服务,而是把自己想要的服务告诉Eureka中心,然后它就会把符合你自己需求的服务告诉你让你来使用。在此同时,服务的提供方与Eureka之间是通过心跳机制来进行监控和管理的,来看某些可

26、以使用的服务是否正常运行并且可以使用,当某些服务的提供方出现了一切技术问题或非技术问题,Eureka自然就会把它从众多的服务列表中排除掉。这就实现了服务的自动注册功能、发现服务功能、状态的实时监控功能。具体实现:1eureka微服务的pom.xml文件需引入spring-cloud-starter-netflix-eureka-server依赖,并在主方法上添加EnableEurekaServer注解标识该应用为eureka服务器。2在需要拉取服务的主方法上添加EnableDiscoveryClient注解标识,就可以实现服务拉取。4.1.2 全局网关(gateway_zuul)技术描述:全局

27、网关是微服务系统的服务入口,采用zuul作为网关实现,可对所有请求进行过滤,限流,黑名单访问控制等高级特性,同时,保证服务的安全性,服务内部间通过内网访问,前端请求到网关中心时,网关中心会根据该请求携带的access_token访问认证中心,确保该token有效才放行。具体实现:1.gateway_zuul项目中需要添加spring-cloud-starter-netflix-zuul的相关依赖,并在运行类的main方法中添加EnableZuulProxy注解,标识该应用为网关。2.在ns-gateway的application.yml配置文件中配置拦截规则,并且还可以创建相关的类,来自定义拦

28、截规则。4.1.3 上传微服务技术描述:我的商城的上传微服务部分是通过利用FastDFS的客户端来实现的。FastDFS是一个体积小、性能强大的开源分布式文件系统。用的是C语言来开发此软件,功能十分的丰富:文件的存储、文件的同步管理、文件的上传和下载、存取的时候可以实现负载均衡、在线扩大容量等,适合有大容量存储需求的应用和系统。具体实现:1.下载FastDFS客户端到虚拟机中去,并配置相关的文件。在上传微服务的pom.xml加入fastdfs-client依赖。2.在服务层代码中写相应的规则,并在配置文件中加入相应的配置。4.1.4 Elasticsearch(搜索引擎)技术描述:Elasti

29、csearch 是一个关于使用分布式和RESTful风格的查询和数据分析引擎,能够解决大多数不同的用例。接近于实时的搜索,数据的更新速度在Elasticsearch中可以说是几乎完全同步的。总而言之就是搜索速度极其快,目前很多公司都在使用。具体实现: 1下载Elasticsearch客户端到虚拟机,并配置相关的文件。在搜索微服务的pom.xml加入spring-boot-starter-data-elasticsearch依赖。 2. 在服务层代码中写相应的规则,并在配置文件中加入相应的配置。4.1.5 RabbitMQ(消息队列) 技术描述:消息队列总的来说是典型的创造者、消费者模型。服务的

30、提供方不断向消息队列中提供生产的消息,服务的消费方不断的从信息队列中获取自身需要消费的消息。因为不同服务的信息的生产和消费都是不同步的,而且只需关心服务的消息的发送和消费,几乎是不用考虑业务逻辑的问题是否有干扰该服务,这样就实现了解耦。AMQP是一个协议,它主要内容和作用是提供统一的消息服务的应用层标准高级消息队列,是应用层协议中的一个开源的协议。在此协议的基础上的服务消费方与消息的中间方可相互发送消息,并且是不受不同的产品、不同的开发语言等条件的影响和限制的。RabbitMQ就是一个基于AMQP的基础上的一款消息管理系统。具体实现:1下载RabbitMQ客户端到虚拟机,并配置相关的文件。在商品微服务的pom.xml加入spring-boot-starter-amqp依赖。2在服务层代码中写相应的规则,并在配置文件中加入相应的配置。4.2 前台商城4.2.1 用户注册 下图4.1是商城的用户注册页面,界面上包

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1