基于Java的网上购物平台系统设计

2021-03-01 02:45莫竣成田秀云
机电工程技术 2021年1期
关键词:后台订单集群

莫竣成,田秀云

(广东海洋大学电信学院,广东湛江 524088)

0 引言

随着全球计算机信息网络的应用普及和迅速发展,互联网使人类生活方式发生巨大变化,为国家和地区的经济增长提供强大的动力。如今利用电脑、手机等在互联网进行网上购物的方式深深地改变了传统线下购物方式,对现代社会生活的影响与日俱增[1]。其中,以淘宝、京东等大型电商平台为代表,2018 年双十一购物节淘宝和京东当日成交额分别达到2 135 亿元和1 598 亿元,创造各自单日营业额新纪录。在传统实体经济面前,这些惊人的单日营业额难以企及。可见,网购方式已经成为现代信息社会人类喜闻乐见的一种流行生活方式。为此,本文提出基于Java 的网上购物平台系统设计,具备注册登录、搜索、购物车、订单、门户、后台管理等网上商城的基本功能,而且能处理高并发问题,系统可用性和稳定性高,系统业务高可扩展性。

1 商城系统总体设计方案

如今,电商平台开发技术发展迅猛,系统架构设计不断适应现实市场环境,出现一些能处理高并发、高可用问题和高可扩展的架构,如分布式服务架构,为开发应用于真实市场环境的网上商城系统提供架构设计基础[2]。此外,随着业界开源精神的流行,开源框架,编程语言,服务器和数据库等免费对外开放源码,一大批热衷技术的开发者贡献自己的代码,使开发技术日趋成熟。

本系统按业务功能逻辑分离前后台设计的B2C网上商城平台,前后台管理模块分离,前台包含有门户网站、商品搜索、商品详情展示、用户购物车、用户注册&登录、订单查看、订单提交、订单支付、广播公告等展示于买家端的功能页面;后台包含有商城整体商品管理、广告活动管理、侧边和购物车下方商品推荐、订单管理、CMS、系统管理等卖家端的功能页面。

1.1 传统应用架构

当网站的访问流量很小时,将所有的功能代码封装部署到同一个应用中,将整体应用拆分成多个相互独立的子应用,按表现、业务、数据访问分3层结合MVC 模式开发[3],这种称为单一垂直应用架构,如图1所示。这种传统架构优点在于可以减少节点服务器的部署和降低开发成本,提升开发效率;但随着网上商城访问量的增大和业务的扩展,此架构难以应对巨大的访问压力和后期业务扩展受限且工程量大,单靠提高系统硬件机器性能带来的效果越来越不明显,所以传统的架构难以适用于如今复杂的真实市场环境。

图1 单一垂直应用架构

1.2 系统架构设计

传统应用架构存在很大局限性,难以适用如今的电商市场环境,因此,本系统采用SOA 分布式服务架构,其具有处理高并发的能力,能灵活响应多变的市场需求,能实时监控集群容量值和均衡调度系统资源[4]。

系统将核心业务分离为一个个独立的服务,形成统一管理统一调度的服务中心。表现层通过服务中间件Dubbo与服务层通信,服务层将所有服务注册到Dubbo的注册中心,表现层需要在注册中心订阅处理本层业务所需的服务,并通过远程调用所订阅的服务[5]。服务层与持久层之间的通信,使用了Redis作为数据缓存服务器,提供可靠快速的数据访问,以减少对数据库的访问压力。搜索服务则通过Solr服务器来管理索引库,提供大量快速精准的搜索服务,可满足各种复杂的搜索业务需求[6]。系统整体架构如图2所示。

图2 系统整体架构

2 系统分析

SOA(Service Oriented Architecture)面向服务的分布式架构,就是把各个处理不同业务的子系统分别拆分为服务和表现两个工程,将各个独立的子系统部署到不同的服务器上。

此架构使商城系统具有较高扩展性,在业务扩展时,只需添加处理对应的业务的服务工程,免去重构系统的繁琐;灵活调节性,体现在能够随业务的改变来调整系统的静态和动态资源。系统具备处理高并发能力和高可用性,是通过搭建服务器集群,使用主从模型为每一台主机配置备用机来实现,并且使用中间件负责资源调度、实时监控服务和管理服务器集群容量,提高集群利用率[4]。

2.1 Redis服务器集群分析与搭建

Redis 是各大互联网公司广泛使用的缓存中间件,单节点Redis 服务器就能达到非常理想的性能。Redis集群是在网络中配置多台Redis服务器节点,节点间相互共享数据的服务器集群;其能自动根据哈希值将数据切分到不同哈希槽的服务器节点上,当部分节点失效或者死机时,通过投票容错和监听机制,让从节点继续处理命令请求,直到主机恢复正常工作。因此,Redis 集群具有高可用性,适应复杂变化的互联网环境[7]。Redis集群架构如图3所示。

图3 Redis集群架构

2.2 Solr服务器集群分析与搭建

Solr集群是利用Solr和Zookeeper各自优势集于一体组成的分布式搜索方案,用Zookeeper 作为集群的资源配中心,使集群能够集中统一配置信息,具备实时搜索和自动负载均衡的能力,以应对系统索引量很大,搜索请求并发量很高的搜索环境[6]。Solr 集群架构如图4所示。

图4 Solr集群架构

3 系统主要部分功能设计

3.1 搜索系统设计

搜索系统是基于Solr集群设计的一个分布式搜索引擎,适用于高搜索请求的环境。为系统的具体业务自定义业务域,当后台添加商品后,经过中文分析器分词,Solr将关键词索引添加到索引库存储。前台输入关键词搜索,系统调用搜索服务处理搜索请求,并返回搜索结果[6]。

3.2 SSO单点登录系统设计

传统的登录实现方式适用于只有一个Web 工程时,但是在集群环境下会出现要求用户多次登录的情况。由于本系统在集群环境下开发,因此,提出的解决方案是配置一个用于管理Session 的服务器,使用Redis服务器模拟Session,实现Session的统一管理,解决Session共享出现的节点上限问题[8]。登录逻辑基本流程如图5所示。

图5 登录逻辑基本流程

用户点击查询订单时,浏览器发送查询订单请求,服务器从请求参数的cookie 中获取token,调用SSO服务,根据token到Redis中查询用户信息,若to⁃ken存在则调整有效期后返回用户已登录,显示订单信息;否则token 不存在,跳转到登录页面重新登录[9]。查询订单处理逻辑如图6所示。

图6 查询订单处理逻辑

3.3 后台管理系统设计

管理员在后台可以进行商品、内容和索引库的管理,其中,网站所有图片都是使用FastDFS分布式文件系统存储,提供统一的访问方式。FastDFS图片服务器是一款如今业界流行且广泛应用于各大互联网公司的开源的分布式文件系统,它解决了大数据量存储和负载均衡等问题等机制[10]。

4 系统实现

4.1 前台系统实现

前台门户首页如图7所示。

图7 商城首页

4.2 后台系统实现

管理员在后台系统对商品进行管理,新增商品如图8所示。

图8 新增商品图

5 结束语

本文主要介绍了基于Java 编程语言开发的网上商城平台系统,在其前台管理系统,用户在商城上搜索商品,查看详情信息,将其添加到购物车,注册成为会员,登录后可以管理购物车和订单;在后台管理系统,管理员可以对商城的商品、内容和索引库的管理。本设计实现了一个界面简洁美观,交互性友好,具有高安全性、高可用性、能处理高并发的网上购物平台系统。

猜你喜欢
后台订单集群
春节期间“订单蔬菜”走俏
新产品订单纷至沓来
海上小型无人机集群的反制装备需求与应对之策研究
Wu Fenghua:Yueju Opera Artist
“最确切”的幸福观感——我们的致富订单
一种无人机集群发射回收装置的控制系统设计
后台暗恋
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
后台朋友