武海龙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.
因篇幅问题不能全部显示,请点此查看更多更全内容