基于分布式的电商平台搭建方法

2017-07-18 11:47蒋勇孙旭成都理工大学信息科学与技术学院
数码世界 2017年6期
关键词:调用视图分布式

蒋勇 孙旭 成都理工大学信息科学与技术学院

基于分布式的电商平台搭建方法

蒋勇 孙旭 成都理工大学信息科学与技术学院

B2B电子商务即企业对企业的电子商务,也称批发电子商务。电子商务的涉及面十分广泛,电子商务给我们的生活提供了各种便利,一个实现良好的B2B电子商务平台必须具备高可靠性、高可扩展性、高可用性、高度透明的分布性、高度异构性、高度模块化和可重用性。本文主要讨论基于Zookeeper,Dubbo的分布式系统下的B2B平台构建方法,阐述了本系统的构架及其工作原理,及其特性;论述了本系统构架的搭建方法,运行结果说明了开发方法的效果。

分布式 电商平台 B2B

1 分布式技术概述

ZooKeeper是一个为分布式应用程序提供高性能协调服务的工具集合,是著名的开源框架Hadoop的子项目。Zookeeper具有简单、易表达、高可用性、松耦合交互等特性,并且Zookeeper为开发人员提供了一套丰富的API,减轻了开发人员编写通用协议的负担。Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合),可以和Spring框架无缝集成,目前在构建大型分布式网站方面使用广泛。本系统在逻辑设计上采用多层的分布式应用模型,应用逻辑按功能划分为组建各个应用组件根据它们所在的层分布在不同的服务器上。本文章设计的B2B电子商务平台采用MVC设计思想,MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这种设计模式将整体软件分为了这3部分,完成了大型软件系统的松散耦合。在MVC模式中,Web用户向服务器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。系统中控制层使用SpringMV框架,是一种实现MVC模式的轻量级Web框架,可以简化开发过程。

2 系统模型架构设计

本系统的Web平台采用多层分布式结构,开发环境:开发工具Eclipse,项目管理工具maven,应用服务器Tomcat6.0,分布式服务框架ZooKeeper、Dubbo,项目框架SpringMVC,持久层框架IBatis,数据库oracle。本系统的软件设计架构分为了视图层,服务层(center层),数据存储层3个基本层:视图层,即用户看到的使用的,这里包括为了Admin、Web(PC端)、Mobile(手机端)。Admin后台管理,主要负责对商品上下架,价格管理,价格表管理,价格表审核,商品审核,用户账号的管理等。数据存储层,B2B的数据存储层主要负责对数据的存储、完成数据操作,在本系统中采用集群化的Oracle数据库,在数据库的设计中涉及到分区,分库分表,负载均衡,读写分离等负载操作。服务层(center层),即业务层,是本项目中最为重要的部分。首先用户在使用本系统的时候,包括Web(PC端)、Mobile(手机端),里面的业务操作,对数据的操作基本都是一样的。如果每个项目端都写一套业务逻辑的话,这时将会出现大量的代码冗余,项目本身的复杂程度会增加,开发周期也会大大增加。于是本项目提出,将admin(后台管理)、Web(PC端)、Mobile(手机端)相同的业务服务层(包括dao层)抽离出来,部署成单独的一个项目,于是center层由此诞生了。Center层的主要作用就是为视图层的4个项目做服务,以及包括对数据库的操作(dao层)。由于视图层的4个项目是独立部署在4个不同的服务器上的,center层的项目也是独立部署在一个服务器上的,原来是相当于每个项目里面都有一个center层,所以可以直接调用服务,现在把center层单独部署成一个项目,视图层的4个项目如何来调用center层的业务服务,就成了一个问题。本系统的解决方案是,采用分布式部署,利用分布式框架dubbo,服务注册中心ZooKeeper来完成调用。首先将center层,使用maven工具,打包成jar包的形式,放在4个项目的下面,将需要调用的服务向注册中心ZooKeeper索要。Center层所有的服务也将会通过注册中心ZooKeeper发布出去,这样就顺利的完成了视图层对center层调用。具体流程如图2-1:

图2-1 系统流程

3 结论

通过对分布式系统的讨论,我们的视图层的3个项目可以共享Center层的服务,调用同一个方法来完成页面上的操作。如果将来,我们想在这个系统的基础上再增加一个项目,比如开发微信端,只需建一个视图层的项目,就可以直接调用Center的服务,这将大大减少代码的冗余,缩短开发新项目的时间,给开发人员带来很大的便利。通过探讨本文提出的分布式框架的模型,我们看出分布式的高可扩展性、高可用性,给以后开发新系统带来很大的便利,现如今,互联网与电子商务在我国仍将高效的发展,一个具备高可扩展性、高可用性的分布性系统越来越重要。但是随着用户量的增加,系统对大量数据处理的性能要求也会越来越高,这就要求按照需求的变化开发新的业务逻辑组件,同时完善已部署在系统的功能组件,提供组件的通用性,所以设计细节还要进一步学习,相信在经过不断的完善,原型系统一定会越来越完美!

[1]梁金月.我国电子商务B2B现状及趋势[J].中国流通经济,2000,增刊:36-37

[2]李永强,岑衍强.基于J2EE的多层、分布式企业应用软件系统[J],微计算机应用,2001,22(5)

[3]谢璐俊,杨鹤彪.基于Dubbox的分布式服务架构设计与实现[J].软件导刊,2016.5,Vol.15No.5:13-15

[4]瞿裕忠.电子商务应用开发技术[M],北京:高等教育出版社,2000

猜你喜欢
调用视图分布式
浅析分布式发电对电力系统的影响
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
视图
基于预处理MUSIC算法的分布式阵列DOA估计
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Django 框架中通用类视图的用法
分布式并联逆变器解耦电流下垂控制技术
家庭分布式储能的发展前景