蔣勇 孫旭 成都理工大學信息科學與技術學院
基于分布式的電商平臺搭建方法
蔣勇 孫旭 成都理工大學信息科學與技術學院
B2B電子商務即企業(yè)對企業(yè)的電子商務,也稱批發(fā)電子商務。電子商務的涉及面十分廣泛,電子商務給我們的生活提供了各種便利,一個實現(xiàn)良好的B2B電子商務平臺必須具備高可靠性、高可擴展性、高可用性、高度透明的分布性、高度異構性、高度模塊化和可重用性。本文主要討論基于Zookeeper,Dubbo的分布式系統(tǒng)下的B2B平臺構建方法,闡述了本系統(tǒng)的構架及其工作原理,及其特性;論述了本系統(tǒng)構架的搭建方法,運行結果說明了開發(fā)方法的效果。
分布式 電商平臺 B2B
ZooKeeper是一個為分布式應用程序提供高性能協(xié)調服務的工具集合,是著名的開源框架Hadoop的子項目。Zookeeper具有簡單、易表達、高可用性、松耦合交互等特性,并且Zookeeper為開發(fā)人員提供了一套豐富的API,減輕了開發(fā)人員編寫通用協(xié)議的負擔。Dubbo是Alibaba開源的分布式服務框架,它最大的特點是按照分層的方式來架構,使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合),可以和Spring框架無縫集成,目前在構建大型分布式網(wǎng)站方面使用廣泛。本系統(tǒng)在邏輯設計上采用多層的分布式應用模型,應用邏輯按功能劃分為組建各個應用組件根據(jù)它們所在的層分布在不同的服務器上。本文章設計的B2B電子商務平臺采用MVC設計思想,MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這種設計模式將整體軟件分為了這3部分,完成了大型軟件系統(tǒng)的松散耦合。在MVC模式中,Web用戶向服務器提交的所有請求都由控制器接管。接受到請求之后,控制器負責決定應該調用哪個模型來進行處理;然后模型根據(jù)用戶請求進行相應的業(yè)務邏輯處理,并返回數(shù)據(jù);最后控制器調用相應的視圖來格式化模型返回的數(shù)據(jù),并通過視圖呈現(xiàn)給用戶。系統(tǒng)中控制層使用SpringMV框架,是一種實現(xiàn)MVC模式的輕量級Web框架,可以簡化開發(fā)過程。
本系統(tǒng)的Web平臺采用多層分布式結構,開發(fā)環(huán)境:開發(fā)工具Eclipse,項目管理工具maven,應用服務器Tomcat6.0,分布式服務框架ZooKeeper、Dubbo,項目框架SpringMVC,持久層框架IBatis,數(shù)據(jù)庫oracle。本系統(tǒng)的軟件設計架構分為了視圖層,服務層(center層),數(shù)據(jù)存儲層3個基本層:視圖層,即用戶看到的使用的,這里包括為了Admin、Web(PC端)、Mobile(手機端)。Admin后臺管理,主要負責對商品上下架,價格管理,價格表管理,價格表審核,商品審核,用戶賬號的管理等。數(shù)據(jù)存儲層,B2B的數(shù)據(jù)存儲層主要負責對數(shù)據(jù)的存儲、完成數(shù)據(jù)操作,在本系統(tǒng)中采用集群化的Oracle數(shù)據(jù)庫,在數(shù)據(jù)庫的設計中涉及到分區(qū),分庫分表,負載均衡,讀寫分離等負載操作。服務層(center層),即業(yè)務層,是本項目中最為重要的部分。首先用戶在使用本系統(tǒng)的時候,包括Web(PC端)、Mobile(手機端),里面的業(yè)務操作,對數(shù)據(jù)的操作基本都是一樣的。如果每個項目端都寫一套業(yè)務邏輯的話,這時將會出現(xiàn)大量的代碼冗余,項目本身的復雜程度會增加,開發(fā)周期也會大大增加。于是本項目提出,將admin(后臺管理)、Web(PC端)、Mobile(手機端)相同的業(yè)務服務層(包括dao層)抽離出來,部署成單獨的一個項目,于是center層由此誕生了。Center層的主要作用就是為視圖層的4個項目做服務,以及包括對數(shù)據(jù)庫的操作(dao層)。由于視圖層的4個項目是獨立部署在4個不同的服務器上的,center層的項目也是獨立部署在一個服務器上的,原來是相當于每個項目里面都有一個center層,所以可以直接調用服務,現(xiàn)在把center層單獨部署成一個項目,視圖層的4個項目如何來調用center層的業(yè)務服務,就成了一個問題。本系統(tǒng)的解決方案是,采用分布式部署,利用分布式框架dubbo,服務注冊中心ZooKeeper來完成調用。首先將center層,使用maven工具,打包成jar包的形式,放在4個項目的下面,將需要調用的服務向注冊中心ZooKeeper索要。Center層所有的服務也將會通過注冊中心ZooKeeper發(fā)布出去,這樣就順利的完成了視圖層對center層調用。具體流程如圖2-1:
圖2-1 系統(tǒng)流程
通過對分布式系統(tǒng)的討論,我們的視圖層的3個項目可以共享Center層的服務,調用同一個方法來完成頁面上的操作。如果將來,我們想在這個系統(tǒng)的基礎上再增加一個項目,比如開發(fā)微信端,只需建一個視圖層的項目,就可以直接調用Center的服務,這將大大減少代碼的冗余,縮短開發(fā)新項目的時間,給開發(fā)人員帶來很大的便利。通過探討本文提出的分布式框架的模型,我們看出分布式的高可擴展性、高可用性,給以后開發(fā)新系統(tǒng)帶來很大的便利,現(xiàn)如今,互聯(lián)網(wǎng)與電子商務在我國仍將高效的發(fā)展,一個具備高可擴展性、高可用性的分布性系統(tǒng)越來越重要。但是隨著用戶量的增加,系統(tǒng)對大量數(shù)據(jù)處理的性能要求也會越來越高,這就要求按照需求的變化開發(fā)新的業(yè)務邏輯組件,同時完善已部署在系統(tǒng)的功能組件,提供組件的通用性,所以設計細節(jié)還要進一步學習,相信在經(jīng)過不斷的完善,原型系統(tǒng)一定會越來越完美!
[1]梁金月.我國電子商務B2B現(xiàn)狀及趨勢[J].中國流通經(jīng)濟,2000,增刊:36-37
[2]李永強,岑衍強.基于J2EE的多層、分布式企業(yè)應用軟件系統(tǒng)[J],微計算機應用,2001,22(5)
[3]謝璐俊,楊鶴彪.基于Dubbox的分布式服務架構設計與實現(xiàn)[J].軟件導刊,2016.5,Vol.15No.5:13-15
[4]瞿裕忠.電子商務應用開發(fā)技術[M],北京:高等教育出版社,2000