蔣勇 孫旭 成都理工大學信息科學與技術學院
基于分布式的電商平臺搭建方法
蔣勇 孫旭 成都理工大學信息科學與技術學院
B2B電子商務即企業對企業的電子商務,也稱批發電子商務。電子商務的涉及面十分廣泛,電子商務給我們的生活提供了各種便利,一個實現良好的B2B電子商務平臺必須具備高可靠性、高可擴展性、高可用性、高度透明的分布性、高度異構性、高度模塊化和可重用性。本文主要討論基于Zookeeper,Dubbo的分布式系統下的B2B平臺構建方法,闡述了本系統的構架及其工作原理,及其特性;論述了本系統構架的搭建方法,運行結果說明了開發方法的效果。
分布式 電商平臺 B2B
ZooKeeper是一個為分布式應用程序提供高性能協調服務的工具集合,是著名的開源框架Hadoop的子項目。Zookeeper具有簡單、易表達、高可用性、松耦合交互等特性,并且Zookeeper為開發人員提供了一套豐富的API,減輕了開發人員編寫通用協議的負擔。Dubbo是Alibaba開源的分布式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合),可以和Spring框架無縫集成,目前在構建大型分布式網站方面使用廣泛。本系統在邏輯設計上采用多層的分布式應用模型,應用邏輯按功能劃分為組建各個應用組件根據它們所在的層分布在不同的服務器上。本文章設計的B2B電子商務平臺采用MVC設計思想,MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這種設計模式將整體軟件分為了這3部分,完成了大型軟件系統的松散耦合。在MVC模式中,Web用戶向服務器提交的所有請求都由控制器接管。接受到請求之后,控制器負責決定應該調用哪個模型來進行處理;然后模型根據用戶請求進行相應的業務邏輯處理,并返回數據;最后控制器調用相應的視圖來格式化模型返回的數據,并通過視圖呈現給用戶。系統中控制層使用SpringMV框架,是一種實現MVC模式的輕量級Web框架,可以簡化開發過程。
本系統的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個項目可以共享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