您的当前位置:首页基于分布式架构管理的B2C商城设计与实现

基于分布式架构管理的B2C商城设计与实现

2021-07-01 来源:小侦探旅游网
第274期第卷第27卷第4期2019年8月文章编号:员园园缘原员圆圆愿(圆园19)园4原园园25原04电脑与信息技术悦燥皂责怎贼藻则葬灶凿陨灶枣燥则皂葬贼蚤燥灶栽藻糟澡灶燥造燥早赠灾燥造援27晕燥援4Aug援圆园19基于分布式架构管理的B2C商城设计与实现

武海龙1,李国平2山西太原(1.太原科技大学教育信息技术中心,

河南郑州030024;2.河南工业大学信息工程学院,

450063)

摘前端采用EasyUI设计。架构设计要:设计实现了一个B2C商城,底层设计采用Java编译语言构建Spring框架设计,

下单和对商品信息管理等功能,主要分为以下几个模采用分布式架构,程序耦合度低、扩展性好。系统实现了展示商品、在不同服务中无需重复登录,提块:后台管理模块:管理用户信息和商品等信息;SSO单点登录模块:用户只需登录一次,使用Solr服务器,提高性能;购物车模块:使高用户体验性;搜索模块:当用户访问量增多时,减小对数据库服务器的压力,并生成订单。经测试,系统功能稳定,运用Redis缓存技术,实现购物车功能;订单模块:用户将喜欢的商品进行下单操作,行良好。

关键词:网上商城;分布式;Spring;Java中图分类号:TP311.52

文献标识码:A

DesignandImplementationofB2CMallBasedonDistributedArchitectureManagement

WUHai-long1,LIGuo-ping2

(1援EducationInformationTechnologyCenter,TaiyuanUniversityofScienceandTechnology,Taiyuan030024,China;2.SchoolofInformationScienceandEngineering,HenanUniversityofTechnology,Zhengzhou450001,China)

Abstract:ThissystemisaB2Cmalldesign,theunderlyingdesignuseJavacompilerlanguagetobuildSpringframeworkdesign,andthefrontendissetupwithEasyUI.Thearchitecturedesignadoptsdistributedarchitecturewithlowerprogramcouplingandbetterscalability.Thesystemhasrealizedfunctionsofdisplayingcommodities,placingordersandmanagingcommodityinformation,whicharemainlydividedintothefollowingmodules:Backgroundmanagementmodule:manageuserinformation,goodsandotherinformation;SSOsinglesign-onmodule:usersonlyneedtologinonce,andthereisnoneedtologinrepeatedlyindifferentservicestoimproveuserexperience;Searchmodule:Solrserverisusedtoreducethepressureondatabaseserverandimproveperformancewhenuservisitsincrease;Shoppingcartmodule:useRediscachingtechnologytorealizeshoppingcartfunction;Ordermodule:usersplaceordersfortheproductstheylikeandgenerateorders.Aftertesting,thesystemfunctionisstableandrunswell.Keywords:onlinemall;distributed;Spring;Java

网上购物已互联网技术的发展,电子商务的兴起,

近几年,电子商务交经慢慢的融入到人们的生活当中,

查询更加易额突飞猛涨[1]。越来越需要界面更加友好,

高效的购物平台。

本系统采用分布式架构设计,前端使用了EasyUI,后端选择Spring、SpringMVC和持久层框架MyBatis,使用MySQL和Redis数据库,同时采用Solr

提高查询效率。服务器存储商品信息,通过建立索引,

1系统设计

为买本系统的主要功能是:为商家提供商品管理,

家提供商品选购服务的系统平台。后台管理系统主要购物车系统模块是使用管理商品信息、商品规格信息。

Redis存放商品信息,将商品回显购物车页面。订单系修改订单状态等功能。使统模块提供下单、查询订单、用Solr服务器为系统提供搜索功能。单点登录系统模

收稿日期:2019-02-19

(项目编号:基金项目:郑州市地方高校急(特)需专业建设项目zzlg201608)

(1979-)计算机网络;李国平(1978-)硕士研究生,主要研究作者简介:武海龙,男,山西交城人,硕士,实验师,主要研究方向:,男,河南济源人,讲师,

方向:嵌入式系统。

·26·电脑与信息技术2019年8月

块为多个系统之间提供用户登录凭证以及查询登录用

户信息功能,在购物时不会出现重复登录操作,使流程更安全,用户的体验性更好。

通过需求分析可以得到基础的系统功能模块,

包括:(1)后台管理系统模块:管理商品信息、商品规格属性。

(2)购物车系统模块:提供存放商品、为订单系统做准备。

(3)订单系统模块:提供下单、

查询订单、修改订单状态。

(4)单点登录系统模块:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

(5)搜索系统模块:提供商品的搜索功能。

本系统采用分布式架构设计,

使用的Alibaba开源的分布式服务框架Dubbo,注册中心采用的是Zookeeper,由服务提供方注册服务,由服务消费方使用服务。系统在SSO单点登录中和存放商品信息时用到了Re

dis数据库,其中在单点登录时充当缓存,解决Session不能跨域问题,这样在不同的系统中都可以通过从

Redis中获取用户信息,来验证用户是否登录。消息队列ActiveMQ是在存储用户信息到MySQL数据库的同时将商品信息同时储存在Solr服务器中使用的,通过

队列存储商品id属性并发布出去,

在搜索系统中添加监听器,监听并获取商品id,通过调用服务层接口,获取到商品信息,

并存储在Solr服务器中。系统主要分为三层:表现层即展示给用户的前端页面;服务层指的是后端的业务逻辑;持久层指的是存储数据层。

系统的设计首先确定要实现什么功能,然后确定实现这些功能的最佳方法,还有在实现过程中会遇到的问题,这些问题都需要进行需求分析,根据需求分析,可以确定所需要的数据和数据的类型,根据这些信息进行数据库的设计。

系统采用MySQL关系型数据库进行数据的存储,采用数据库可视化工具sqlYog对数据库进行相应的操作。MySQL数据库具有数据库完整性高,

还有不同的引擎提供选择,使用InnoDB引擎,它支持事务操作,支持行级锁[2]。

2详细设计

2.1模块概述

本系统包括五大功能模块:

后台管理系统模块、购物车系统模块、订单系统模块、搜索系统模块、单点登录系统模块。

整体业务流程图如图1所示:

图1整体业务流程图

用户可以通过后登录后进入商城主页,也可以直

接进入商城主页。用户可以通过搜索,

来寻找自己想要的商品。找到自己想要的商品后,点击进去商品详情页,查看商品后可以加入购物车。

当用户想要查看购物车时,我们会判断用户是否登录,如果没有登录则提示去执行登录操作,登录后即可进入购物车页面,

并将自己想要的商品生成订单。2.2后台管理页面和业务流程

后台管理实现主要功能是商品管理功能,其中分

成新增商品功能,商品信息管理功能,规格参数管理功能。

2.2.1商品信息管理

在后台管理模块中,通过EasyUI页面设计显示,

使功能更加直观的呈现给用户。可以进行商品的添加、修改、删除等操作。

商品信息管理模块,就是对商品信息可视化显示,

更直观的传送给管理者,

如图2所示:图2商品列表图

新增按钮,触发点击事件开始执行页面跳转,

跳转到新增商品页面完成商品添加功能。

第27卷第4期武海龙等:基于分布式架构管理的B2C商城设计与实现

·27·

2.2.2新增商品

后端创建save方法,当用户新增商品信息之后并提交,系统执行后端save方法,将商品信息存入数据

库中。如图3所示:

图3新增商品页面

前端页面创建有一个item-edit.jsp页面,点击编辑按钮,会渲染此页面,会将商品的信息回显,

如图4所示:

图4修改商品页面

后端创建update方法,当用户编辑商品信息之后,系统会提交表单数据到后端update方法,将商品

的修改信息存入数据库中并更新redis数据库。

2.2.3商品规格参数管理

规格参数就是商品的类型、配置等一些参数进行统计,如图5所示:

图5规格参数页面用户可以通过新增按钮给商品增加规格参数。选中一条数据,可以删除商品规格参数。2.3前端页面展示

前端页面使用jsp、EasyUI技术设计,使页面看起来更简单、大方。

2.3.1登录界面

本系统登录界面如图6所示:

图6系统用户登陆页面布局图

用户点击登陆按钮后,前端会通过表单验证先校

验表单必填项是否填写完整,

若没有填写完整,则会禁止表单数据向后台的提交,提示用户继续输入,

若表单填写完整后,则会提交表单数据。

用户数据的安全性是不可忽视的,所以本系统在

保存用户信息时,使用md5加密方式,对密码进行加密后存储到数据库中,当用户登录时,后台使用的是

SpringMVC框架,通过Controller层即接口地址层,进行接收请求信息,将用户名和密码传入Service层即业

务逻辑层,判断信息是否正确,最后调用Dao层即持久层,查询出数据库中用户信息进行对比,

数据对比成功即用户名、密码正确,当登录用户合法,用户信息将会被存储到Redis数据库中

(因为Session是保存在服务器端的,不能在不同服务器中共享数据,所以使用Re-dis解决这个不同服务器间不能共享数据问题[3]

),

然后会跳转到系统的主界面。

业务流程图如图7所示:

图7系统用户登陆页面业务流程图

在登录流程中,Redis数据库起到了缓存的作用。

当用户登录并验证用户名密码正确后,系统将会把该

用户的所有的信息取出,并把密码置为空,以键值对的形式存储在Redis中,其中用户ID为键,用户信息为

值。当系统跳转到其他系统服务中时,会有一个拦截器,通过用户ID去Redis中获取值,即用户的信息,

如果获取到了,证明用户已经登录过了,

反之,跳转到用·28·电脑与信息技术2019年8月

户登录界面,重新登录。

2.3.2注册页面

本系统注册页面如图8所示:

图8注册页面

用户注册页面,主要采用了前端表单验证,账户

名、登录密码、确认密码、验证手机,四项都是必填项,当按照要求填写后进行注册。

2.3.3商城首页

本系统首页如图9所示:

图9系统商城首页

商品的信息在后台管理模块中新增商品时,已经通过activeMQ将商品id发布出去,在搜索功能模块中通过监听器获取到商品id,通过商品id可获取到商品信息并将商品信息存入Solr服务器中。系统首页信息通过查询Solr服务器中的数据进行回显数据。Solr服务器中配置索引和分词器,索引可以提高搜索速率,Solr需要依靠tomcat来启动,Solr分词器可以靠关键字进行查询[4]。

2.3.4商品详情页

本系统商品详情页如图10所示:

图10商品详情页

详情页信息同样是通过Solr服务器中获取,要注

意信息的同步更新,Solr服务器是为了减轻查询数据对MySQL服务器的压力,提高用户的体验性。

2.3.5购物车页面

本系统购物车页面如图11所示:

图11系统购物车页面

系统购物车数据是由Redis存储,通过用户id、商品id为键,用户信息为值存储在Redis中,应为Redis

是存储在内存中,相比于MySQL读写效率更高,更适用于大数据的处理。

3结束语

本文设计开发的B2C商城系统,是一个网上购物

商城,为商家和买家提供一个销售和购物的平台。本系统为了解决数据量过大造成对MySQL服务器压力过大问题,考虑使用了读写速率高于MySQL的Redis,通过Redis存储用户登录信息、商品信息,

当添加、修改、删除商品信息时同步更新。

对于本系统的测试是使用Postman软件测试工

具,对系统登录功能模块、商品搜索、购物车、生成订单等功能模块进行了测试,经过测试,

基于分布式架构设计的松子商城系统可以满足商品展示、下单、后台商品管理等功能。参考文献

[1]王凤飞.我国电子商务与传统商务协同发展研究[D].中国矿

业大学,2016.[2]吴沧舟,兰逸正,张辉.基于MySQL数据库的优化[J].电子科技,2013,26(09):182-184.

[3]

DanielTejera,AlejandroAlonso,MiguelA.deMiguel.Dise觡odeunSoftwaredeIntermediacióndeComunicaci佼nparaSistemasDistribuidosdeTiempoRealCr侏ticosenJava[J].RevistaIberoamericanadeAutom佗ticaeInform佗ticaIndustrialRIAI,2013,10(2).[4]

CameliaMu觡oz-Caro,AlfonsoNi觡o,Sebasti佗nReyes,MiriamCastillo.APINetworksJava.AJavaapproachtotheefficienttreatmentoflarge-scalecomplexnetworks[J].ComputerPhysics

Communications,2016,207.

因篇幅问题不能全部显示,请点此查看更多更全内容