吳濤 張俊
摘要:為了增強(qiáng)攀枝花市的影響力,促進(jìn)攀枝花旅游康養(yǎng)信息一體化建設(shè)。設(shè)計(jì)并實(shí)現(xiàn)了基于Dubbo的攀枝花智慧旅游網(wǎng)站。分析了系統(tǒng)的功能模塊,實(shí)現(xiàn)方式以及業(yè)務(wù)流程,采用Dubbo+Zookeeper分布式架構(gòu)、springboot微服務(wù)框架、獨(dú)立文件服務(wù)器、SSO分布式登錄等新技術(shù),實(shí)現(xiàn)景區(qū)景點(diǎn)展示、精彩視頻展示、酒店預(yù)訂、特產(chǎn)購物推薦、美食推薦、論壇社區(qū)、旅游推薦等功能。為來攀枝花旅游的游客提供了優(yōu)質(zhì)的特色美食、出行路線、住宿、飲食及生活咨詢等全方面的服務(wù)。
關(guān)鍵詞:攀枝花;旅游;網(wǎng)站設(shè)計(jì);分布式
中圖分類號(hào):TP393? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)35-0078-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Design and Implementation of Panzhihua Health Tourism Website Based on Dubbo
WU Tao, ZHANG Jun
(Panzhihua college, Panzhihua 617000, China)
Abstract: In order to increase the influence of Panzhihua City, promote the integration of Panzhihua tourism and health information. Designed and implemented the Panzhihua Smart Tourism website based on Dubbo. Analyzed the system's functional modules, implementation methods and business processes, and adopted Dubbo+Zookeeper distributed architecture, spring boot microservice framework, independent file server, SSO distributed login and other new technologies to realize scenic spot display, wonderful video display, hotel reservation, Specialty shopping recommendation, food recommendation, forum community, travel recommendation and other functions. For tourists who come to Panzhihua to travel, it provides high-quality specialty food, travel routes, accommodation, food and life consultation and other comprehensive services.
Key words: panzhihua; tourism; website design; distribute
1 開發(fā)背景
近年來,隨著社會(huì)經(jīng)濟(jì)的發(fā)展,旅游產(chǎn)業(yè)在中國不斷地蓬勃發(fā)展。利用這一有利的社會(huì)時(shí)機(jī),攀枝花積極響應(yīng)國家政策,利用自己得天獨(dú)厚的“本土優(yōu)勢(shì)”,著力實(shí)現(xiàn)“中國康養(yǎng)地”這一目標(biāo),但由于攀枝花旅游產(chǎn)業(yè)發(fā)展較緩,行業(yè)發(fā)展尚不成熟。因此著力建設(shè)基于Dubbo的攀枝花康養(yǎng)旅游網(wǎng)站平臺(tái),大力宣傳攀枝花的舒適、優(yōu)越的旅游資源,為廣大的來攀旅游人員提供快捷的旅游信息服務(wù),進(jìn)而促進(jìn)攀枝花康養(yǎng)旅游信息一體化建設(shè),刺激攀枝花經(jīng)濟(jì)的發(fā)展。
2 技術(shù)選型
2.1 Dubbo-Zookeeper分布式架構(gòu)
2.1.1 Dubbo框架簡(jiǎn)介
Dubbo是阿里開發(fā)的一款高性能的RPC框架,通過本地調(diào)用和遠(yuǎn)程調(diào)用來實(shí)現(xiàn)分布式架構(gòu)。讓遠(yuǎn)程方法調(diào)動(dòng)方法變得透明化[1]。通過多種注冊(cè)中心來監(jiān)控各個(gè)服務(wù)之間的狀態(tài),真正實(shí)現(xiàn)了協(xié)同管理。
2.1.2 Zookeeper框架簡(jiǎn)介
Zookeeper借鑒了傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)中的樹模型,每一個(gè)節(jié)點(diǎn)儲(chǔ)存不同的數(shù)據(jù),用來記錄Dubbo暴露出的接口的相關(guān)信息。Zookeeper通常用作注冊(cè)中心,與Dubbo搭配使用。Dubbo把相關(guān)的接口信息暴露在Zookeeper上,Zookeeper利用其優(yōu)秀的上下感知和異步通知機(jī)制來進(jìn)行接口信息的管理。極大地增加了分布式系統(tǒng)的可用性。
2.2 整體構(gòu)架
攀枝花康養(yǎng)旅游網(wǎng)站采用Dubbo+Zookeeper分布式架構(gòu)管理、springboot集成微服務(wù)框架[2]、FastDFS分布式文件存儲(chǔ)系統(tǒng)、分布式登錄解決方案(SSO)、maven進(jìn)行依賴的管理和統(tǒng)一的部署。在項(xiàng)目的開發(fā)中,各個(gè)微服務(wù)之間相互透明。擁有各自的Handler方法,handler接收前端的請(qǐng)求,并將請(qǐng)求發(fā)送到服務(wù)器上,服務(wù)器通過Zookeeper找到Dubbo暴露的接口,調(diào)用服務(wù)來滿足handler的業(yè)務(wù)需求。傳統(tǒng)的MVC框架就變成了如圖1所示的分布式框架,降低了整個(gè)項(xiàng)目的耦合度,實(shí)現(xiàn)了各個(gè)服務(wù)之間的透明化。有利于項(xiàng)目的前后端分離開發(fā)[3]。
3 系統(tǒng)分析
3.1 需求分析
基于Dubbo的攀枝花康養(yǎng)旅游網(wǎng)站主要是為了來攀枝花的游客提供衣食住行等全方面服務(wù)。提供了景點(diǎn)展示、精彩視頻展示、酒店預(yù)訂、特產(chǎn)購物推薦、美食推薦、論壇社區(qū)、旅游推薦等功能。通過旅游信息,建立攀枝花旅游數(shù)據(jù)倉庫,可以精準(zhǔn)的分析攀枝花目前的旅游狀態(tài),促進(jìn)城市的發(fā)展。攀枝花康養(yǎng)旅游網(wǎng)站按功能性和非功能性需求分析可以分為如下幾個(gè)模塊。
3.1.1 系統(tǒng)功能性需求分析
1)熱點(diǎn)信息管理模塊:對(duì)攀枝花的熱點(diǎn)信息進(jìn)行實(shí)時(shí)更新。
2)熱門旅游項(xiàng)目推薦及管理:按照不同的旅游信息,進(jìn)行分類管理,便于用戶選擇。展示出景點(diǎn)的歷史文化、風(fēng)景特色等。管理員可以對(duì)景區(qū)的信息進(jìn)行管理。
3)酒店的預(yù)訂:根據(jù)的不同酒店的風(fēng)格、定位、資質(zhì)等條件。選出合適的酒店提供給用戶。在此基礎(chǔ)上提供酒店會(huì)議室辦公、就餐等線上服務(wù)[4]。
4)發(fā)帖留言功能:普通用戶可以在網(wǎng)站上進(jìn)行發(fā)帖回帖的操作。對(duì)購買過的特產(chǎn)以及預(yù)訂過的酒店進(jìn)行評(píng)分。積累積分,可以換購實(shí)物或者商店折扣。
5)登錄注冊(cè)模塊:權(quán)限分為普通用戶和管理員用戶和游客。管理員用戶可以對(duì)網(wǎng)站的信息進(jìn)行管理。普通用戶進(jìn)行實(shí)名認(rèn)證之后,可以進(jìn)行特產(chǎn)的購買、酒店的預(yù)訂等一系列功能,游客則只能對(duì)網(wǎng)站的信息進(jìn)行瀏覽。
6)個(gè)性化推薦:使用大數(shù)據(jù)分析技術(shù)對(duì)用戶進(jìn)行數(shù)據(jù)分析。根據(jù)用戶關(guān)聯(lián)賬號(hào)在其他平臺(tái)的瀏覽記錄以及消費(fèi)記錄,得出用戶最適合的特色美食、特色酒店等信息,并推送給用戶。
3.1.2 系統(tǒng)的非功能性需求
1)易用性:能夠全方面展示攀枝花的自然風(fēng)景、旅游資源、特色美食等。提高用戶使用體驗(yàn)。
2)智能推薦:根據(jù)用戶瀏覽的歷史記錄,采用個(gè)性化推薦算法,將旅游信息精準(zhǔn)的推薦給用戶,便于用戶選擇。
3)安全性:系統(tǒng)具有一定的防護(hù)能力。能夠應(yīng)對(duì)普通的網(wǎng)絡(luò)攻擊。具有數(shù)據(jù)庫實(shí)時(shí)備份、安全報(bào)警等機(jī)制。
3.2 系統(tǒng)的功能模塊設(shè)計(jì)
旅游網(wǎng)站系統(tǒng)從結(jié)構(gòu)上分為前臺(tái)應(yīng)用和后臺(tái)管理應(yīng)用兩個(gè)模塊。前臺(tái)系統(tǒng)主要是對(duì)資訊、景點(diǎn)、美食、酒店等信息的查看、收藏、評(píng)論。對(duì)酒店的預(yù)訂、留言等。后臺(tái)管理系統(tǒng)主要對(duì)信息進(jìn)行管理,并且進(jìn)行信息的發(fā)布等等。系統(tǒng)架構(gòu)圖如圖3所示。
3.2.1 前臺(tái)、后臺(tái)應(yīng)用簡(jiǎn)介
前臺(tái)用于展示攀枝花的熱點(diǎn)資訊、旅游資源、特色小吃、旅游線路、酒店查看及預(yù)訂等幾個(gè)模塊。用戶在查看消息的時(shí)候可以進(jìn)行留言、收藏等功能。后臺(tái)頁面可以進(jìn)行資訊的發(fā)布、旅游路線的規(guī)劃、酒店訂單的處理、查看注冊(cè)了的用戶信息,以及對(duì)用戶的密碼進(jìn)行重置等操作。
4 系統(tǒng)實(shí)現(xiàn)
基于Dubbo的攀枝花智慧旅游項(xiàng)目主要是為了增強(qiáng)攀枝花的城市影響力,宣傳攀枝花。本節(jié)主要從資訊的發(fā)布、酒店管理系統(tǒng)、后臺(tái)管理系統(tǒng)、前端信息展示幾個(gè)方面進(jìn)行簡(jiǎn)單描述。
4.1 資訊的發(fā)布
資訊的發(fā)布包括熱點(diǎn)資訊的發(fā)布,以及美食、風(fēng)景、酒店等信息的發(fā)布。系統(tǒng)使用富文本編輯框進(jìn)行內(nèi)容的提交。獲得輸入的內(nèi)容保存到數(shù)據(jù)庫[5]。
保存信息關(guān)鍵代碼:
String itemName = foodItem.getFoodName();
foodItem = getFoodItemByItemName(itemName);
foodItemService.saveFoodItem(foodItem);
return seccess;
上傳圖片關(guān)鍵代碼:
byte[] inByte = dropFile.getBytes();
return ImageUtil.uploadImag(inByte,800,600,true);
4.2 酒店管理系統(tǒng)
用戶可以查看酒店的信息,對(duì)酒店進(jìn)行預(yù)訂,我們使用一套獨(dú)立的酒店管理系統(tǒng)。來管理酒店的SKU(具體的房間)和SPU(房間的類型),并可以進(jìn)行添加,刪除,查看訂單等多項(xiàng)操作。實(shí)現(xiàn)圖如圖4所示:
$("#submitEditorBtn").click(function () {
var text = editor.txt.html();
$.ajax({
"url": "save/hotelItem",
"type": "post",
"data": hotelInfo,
});
4.3 后臺(tái)管理系統(tǒng)
系統(tǒng)可以對(duì)網(wǎng)站的旅游信息進(jìn)行管理操作、對(duì)網(wǎng)站的訪問量,用戶的偏好,熱門瀏覽記錄進(jìn)行統(tǒng)計(jì)。并通過圖表的形式展示給網(wǎng)站的管理員,便于信息統(tǒng)計(jì)與分析。后臺(tái)信息管理如圖5所示。
4.4 信息的瀏覽
用戶登錄之后,可以在網(wǎng)站上面瀏覽信息,信息包含圖片、視頻、音頻等多種多媒體方式。用戶可以實(shí)現(xiàn)收藏、評(píng)論點(diǎn)贊等功能,瀏覽實(shí)現(xiàn)圖如圖6所示。
5 結(jié)束語
目前,分布式系統(tǒng)架構(gòu)是網(wǎng)站開發(fā)的常用架構(gòu)[6],借助分布式的文件系統(tǒng)。能夠有效地應(yīng)對(duì)網(wǎng)絡(luò)流量的沖擊,并提供了良好的文件存取服務(wù)。構(gòu)建了攀枝花康養(yǎng)旅游網(wǎng)站,能夠促進(jìn)攀枝花旅游產(chǎn)業(yè)的發(fā)展,增強(qiáng)攀枝花城市知名度。
參考文獻(xiàn):
[1] 趙子晨,朱志祥,蔣來好.構(gòu)建基于Dubbo框架的Spring Boot微服務(wù)[J].計(jì)算機(jī)與數(shù)字工程,2018,46(12):2539-2543,2551.
[2] 宋萬洋.基于Dubbo框架的分布式視頻網(wǎng)站架構(gòu)設(shè)計(jì)[J].軟件導(dǎo)刊,2018,17(8):137-140.
[3] 崔益彪,上官聲標(biāo),曹驄騰,等.基于Dubbo框架和微信生態(tài)構(gòu)建O2O新零售支撐體系[J].信息通信技術(shù),2019,13(3):56-63.
[4] 石珊.云平臺(tái)下基于FastDFS的文件管理系統(tǒng)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2019.
[5] 楊廷發(fā),丁川蕓,蘭全祥.基于SSH的二維碼點(diǎn)餐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2018,14(30):84-86.
[6] 楊柳.基于Dubbo的高校貧困生資助系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].合肥:安徽大學(xué),2019.
【通聯(lián)編輯:謝媛媛】