亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android互動(dòng)平臺(tái)的分布式服務(wù)器結(jié)構(gòu)設(shè)計(jì)——以創(chuàng)意者互動(dòng)平臺(tái)為例

        2018-02-27 13:29:44周宇航邱雷謝凡殊
        電腦知識(shí)與技術(shù) 2018年35期

        周宇航 邱雷 謝凡殊

        摘要:隨著數(shù)據(jù)規(guī)模的越來越大,傳統(tǒng)的集中式系統(tǒng)越來越難以滿足需求,與此同時(shí),分布式管理系統(tǒng)得到了廣泛的應(yīng)用。分布式系統(tǒng)相對(duì)單體應(yīng)用而言,可以支持更高的并發(fā)訪問量,并且可以根據(jù)業(yè)務(wù)極其靈活地調(diào)整節(jié)點(diǎn)數(shù)量,一個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí)也不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行。與集中式系統(tǒng)相比,分布式系統(tǒng)的性價(jià)比更高、處理能力更強(qiáng)、擴(kuò)展性也更好。

        關(guān)鍵詞:互動(dòng)平臺(tái);分布式服務(wù)器;MySQL;Spring;Android

        中圖分類號(hào):TP311.5? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ?文章編號(hào):1009-3044(2018)35-0059-02

        1 背景

        目前,市場(chǎng)上各種應(yīng)用的互動(dòng)平臺(tái)很多,但并沒有專門針對(duì)用戶個(gè)性化創(chuàng)作的互動(dòng)交易平臺(tái)。該課題組設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于Android的創(chuàng)意者互動(dòng)平臺(tái),主要是為用戶和商戶搭建一個(gè)互動(dòng)交易App環(huán)境。在互動(dòng)平臺(tái)上,幫助用戶把自己的創(chuàng)意、設(shè)計(jì)提供給商戶;幫助商戶把創(chuàng)意融入DIY制作中,實(shí)體化用戶的創(chuàng)意。

        1.1 創(chuàng)意互動(dòng)平臺(tái)設(shè)計(jì)方案

        創(chuàng)意互動(dòng)平臺(tái)主要面向用戶為設(shè)計(jì)師、個(gè)體商家以及追求定制個(gè)性化商品的消費(fèi)者。設(shè)計(jì)師可以在平臺(tái)里售賣自己的設(shè)計(jì)稿;而個(gè)體商家可以買下這些設(shè)計(jì)稿后,做定制或是批量定制生產(chǎn),將實(shí)體商品上架后供廣大消費(fèi)者選購(gòu)。

        平臺(tái)實(shí)現(xiàn)的主要功能如下:1)用戶的登錄與注冊(cè);2)設(shè)計(jì)師發(fā)布自己的設(shè)計(jì)稿并定價(jià);3)商家購(gòu)買已上架且未被選購(gòu)的設(shè)計(jì)稿;4)商家將設(shè)計(jì)稿批量生產(chǎn)為實(shí)體商品并定價(jià)上架;5)用戶選購(gòu)實(shí)體商品;6)用戶之間通過私信進(jìn)行聯(lián)系;7)平臺(tái)方舉辦活動(dòng)或比賽,號(hào)召用戶參與,加強(qiáng)平臺(tái)與用戶之間的黏性;8)用戶之間互相關(guān)注;9)用戶在個(gè)人界面中修改自己的昵稱及個(gè)性簽名;10)用戶為自己喜歡的設(shè)計(jì)稿、實(shí)體商品點(diǎn)贊;11)用戶收藏自己喜歡的商家。

        1.2 創(chuàng)意者互動(dòng)平臺(tái)的優(yōu)點(diǎn)

        該平臺(tái)給予了設(shè)計(jì)師和商家一個(gè)方便的聯(lián)系渠道,讓設(shè)計(jì)師能夠?qū)⒆约合胍纳唐纷鳛樵O(shè)計(jì)稿進(jìn)行售賣,并且讓商家可以通過用戶的點(diǎn)贊來選購(gòu)更具人氣的設(shè)計(jì)稿進(jìn)行批量或是定制生產(chǎn)。平臺(tái)不但可以提高設(shè)計(jì)師設(shè)計(jì)稿的曝光率,也能讓商家更清楚地明白怎樣的設(shè)計(jì)稿是更具有市場(chǎng)的。這樣的交易平臺(tái)打破了以往商家供貨——消費(fèi)者選購(gòu)的單一模式,而是變成了消費(fèi)者選擇自己心儀的設(shè)計(jì)稿——商家購(gòu)買設(shè)計(jì)稿并做出實(shí)體商品供貨——消費(fèi)者進(jìn)行選購(gòu)的模式。

        1.3 服務(wù)器需求

        對(duì)于創(chuàng)意互動(dòng)平臺(tái)來說,網(wǎng)絡(luò)服務(wù)是很重要的一環(huán),而網(wǎng)絡(luò)服務(wù)就離不開服務(wù)器的支持。服務(wù)器響應(yīng)速度不夠,網(wǎng)絡(luò)服務(wù)就慢。服務(wù)器的響應(yīng)速度可以通過提高單個(gè)服務(wù)器性能或者增加服務(wù)器數(shù)量實(shí)現(xiàn),當(dāng)然,更主要是從軟件層面優(yōu)化服務(wù)器端軟件結(jié)構(gòu)達(dá)到提高響應(yīng)速度的目的。

        同時(shí),在對(duì)服務(wù)器端做性能優(yōu)化的時(shí)候,還要考慮到服務(wù)器端程序的易維護(hù)性和可擴(kuò)展性,編寫出健壯穩(wěn)定的服務(wù)器端代碼。

        2 平臺(tái)基礎(chǔ)結(jié)構(gòu)設(shè)計(jì)

        分布式資源共享服務(wù)器與傳統(tǒng)集中式系統(tǒng)的區(qū)別在于:資源和程序可以不位于一個(gè)服務(wù)器上,而是分散到多個(gè)服務(wù)器。分布式服務(wù)克服了傳統(tǒng)集中式系統(tǒng)會(huì)導(dǎo)致中心主機(jī)資源緊張與響應(yīng)瓶頸的缺陷,可以方便應(yīng)對(duì)突發(fā)流量高峰。

        在高并發(fā)時(shí),有很多的請(qǐng)求同時(shí)發(fā)送到服務(wù)器等待處理,會(huì)導(dǎo)致用戶長(zhǎng)時(shí)間得不到響應(yīng),尤其在用戶請(qǐng)求的資源有數(shù)量限制時(shí),用戶不能知道請(qǐng)求是否成功,甚至用戶請(qǐng)求到的資源數(shù)量超出實(shí)際數(shù)量,導(dǎo)致數(shù)據(jù)的一致性出錯(cuò)。這時(shí)候就需要有一個(gè)消息隊(duì)列,有序的處理用戶的請(qǐng)求,并且在流量高峰時(shí)堆積用戶請(qǐng)求,防止業(yè)務(wù)服務(wù)器負(fù)載過高不能響應(yīng)。

        服務(wù)器端和客戶端的交互采用了語言無關(guān)的Http協(xié)議和JSON數(shù)據(jù)格式,服務(wù)器端為客戶端提供RestAPI用于請(qǐng)求數(shù)據(jù),同時(shí)使用消息隊(duì)列和分布式服務(wù)解決高并發(fā)問題。通過這些定義良好的接口和中間件, 服務(wù)器可以方便地實(shí)現(xiàn)擴(kuò)容和替換組件實(shí)現(xiàn)。

        2.1 Rest API

        項(xiàng)目采用C/S結(jié)構(gòu),Android客戶端通過Rest API向服務(wù)器請(qǐng)求數(shù)據(jù)。Rest API為客戶端提供了統(tǒng)一的訪問接口,方便添加其他客戶端或網(wǎng)頁(yè)應(yīng)用。

        2.2Json數(shù)據(jù)交換格式

        JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。JSON采用完全獨(dú)立于語言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語言,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。

        2.3 數(shù)據(jù)庫(kù)選擇和使用

        MySQL是一個(gè)開源的關(guān)系型數(shù)據(jù)庫(kù),也是最流行的關(guān)系型數(shù)據(jù)庫(kù)之一,因其速度、可靠性和適用性而備受關(guān)注。

        2.4 消息隊(duì)列

        消息隊(duì)列是一個(gè)容納被發(fā)送的等待閱讀的消息的區(qū)域,一旦一個(gè)消息被閱讀,這個(gè)消息將會(huì)被從隊(duì)列中移除。在該項(xiàng)目中,消息即客戶端的Http請(qǐng)求。

        3 平臺(tái)的實(shí)現(xiàn)

        3.1 服務(wù)器的主體框架實(shí)現(xiàn)

        服務(wù)器端使用標(biāo)準(zhǔn)MVC設(shè)計(jì)模式。Controller層處理客戶端的網(wǎng)絡(luò)請(qǐng)求;Model層執(zhí)行數(shù)據(jù)庫(kù)的增刪改查并為Controller層提供接口;View層負(fù)責(zé)將Controller層返回的信息以一定的形式展現(xiàn)。在這個(gè)項(xiàng)目中,View層實(shí)際上是Android客戶端,Android客戶端解析服務(wù)器返回的JSON字符串并展示相應(yīng)的界面。

        服務(wù)器程序的核心是SpringWebMvc框架。通過SpringWebMvc框架可以很簡(jiǎn)單地配置handler mapping,然后可以專注于編寫處理網(wǎng)絡(luò)請(qǐng)求的Controller邏輯。同時(shí)SpringWebMvc框架將模型和視圖分離開,服務(wù)器端程序和視圖解耦,便于擴(kuò)展新的客戶端模式。Spring的DI和AOP也極大地簡(jiǎn)化了服務(wù)器端程序的開發(fā)過程。

        3.2 服務(wù)器和客戶端數(shù)據(jù)交換的實(shí)現(xiàn)

        在服務(wù)器端配置一個(gè)JSON消息轉(zhuǎn)換器, Controller層并不直接返回客戶端需要的數(shù)據(jù)模型, 而是返回一個(gè)Java對(duì)象,由消息轉(zhuǎn)換器將Java對(duì)象轉(zhuǎn)換成客戶端需要的信息格式。比如,客戶端向服務(wù)器請(qǐng)求JSON格式的數(shù)據(jù),服務(wù)器端便使用JSON消息轉(zhuǎn)換器將Java對(duì)象轉(zhuǎn)換成JSON字符串返回給客戶端;客戶端需要XML格式的數(shù)據(jù),服務(wù)器端便使用XML消息轉(zhuǎn)換器將Java對(duì)象轉(zhuǎn)換成xml返回給客戶端。Controller不必關(guān)心客戶端需要什么類型的數(shù)據(jù),只需要將數(shù)據(jù)以Java對(duì)象的形式返回即可,由消息轉(zhuǎn)換器將Java對(duì)象轉(zhuǎn)換成客戶端需要的格式。

        3.3 服務(wù)器的數(shù)據(jù)庫(kù)實(shí)現(xiàn)

        服務(wù)器使用MySQL數(shù)據(jù)庫(kù),并通過在Spring中集成Hibernate框架訪問數(shù)據(jù)庫(kù)。通過操作Java對(duì)象實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查,幾乎沒有直接編寫SQL語句,減少了數(shù)據(jù)庫(kù)訪問的出錯(cuò)概率。

        JDBC數(shù)據(jù)庫(kù)連接池使用c3p0,不在每一次訪問數(shù)據(jù)庫(kù)時(shí)創(chuàng)建新連接,而是通過c3p0連接池重用數(shù)據(jù)庫(kù)連接,避免了頻繁的數(shù)據(jù)庫(kù)連接初始化和釋放,極大地減少了系統(tǒng)的響應(yīng)時(shí)間。并且,根據(jù)預(yù)先的占用超時(shí)設(shè)定,可以強(qiáng)制回收被占用連接,避免數(shù)據(jù)庫(kù)連接操作中的資源泄露。

        3.4 服務(wù)器的業(yè)務(wù)邏輯實(shí)現(xiàn)

        服務(wù)器收到消息后,由Spring的前端控制器DispatcherServlet將請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的Controller,Controller中的方法將業(yè)務(wù)邏輯委托給一個(gè)或多個(gè)服務(wù)對(duì)象進(jìn)行處理,并將處理完的信息,即模型數(shù)據(jù)發(fā)送回DispatcherServlet。

        3.5 服務(wù)器的分布式實(shí)現(xiàn)

        服務(wù)器分為業(yè)務(wù)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、Session服務(wù)器和文件服務(wù)器四個(gè)部分。業(yè)務(wù)服務(wù)器處理網(wǎng)絡(luò)請(qǐng)求;數(shù)據(jù)庫(kù)服務(wù)器存儲(chǔ)各項(xiàng)數(shù)據(jù);Session服務(wù)器存儲(chǔ)用戶會(huì)話;文件服務(wù)器使用CDN為用戶提供高速上傳和下載文件服務(wù)。

        業(yè)務(wù)服務(wù)器將每個(gè)用戶的會(huì)話存儲(chǔ)在Session服務(wù)器中(Session服務(wù)器中運(yùn)行一個(gè)Redis數(shù)據(jù)庫(kù)用于存儲(chǔ)用戶會(huì)話),在用戶的每次網(wǎng)絡(luò)請(qǐng)求中,通過Session服務(wù)器驗(yàn)證用戶身份和權(quán)限。服務(wù)器Model層對(duì)數(shù)據(jù)庫(kù)的增刪改查操作則是使用數(shù)據(jù)庫(kù)服務(wù)器中運(yùn)行的MySQL數(shù)據(jù)庫(kù)。文件服務(wù)器通過CDN不僅為用戶提供了高速上傳和下載服務(wù),也極大地降低了業(yè)務(wù)服務(wù)器壓力。

        4 結(jié)束語

        基于該文所配置的分布式服務(wù)器,成功地實(shí)現(xiàn)了一個(gè)基于Android的創(chuàng)意者互動(dòng)平臺(tái)。該文從創(chuàng)意者互動(dòng)平臺(tái)的需求分析,到服務(wù)器設(shè)計(jì),再到實(shí)現(xiàn)做了詳細(xì)的描述,整體完成了平臺(tái)的分布式服務(wù)器結(jié)構(gòu)實(shí)現(xiàn)。服務(wù)器端嚴(yán)格按照MVC設(shè)計(jì)模式,多層次分離,主要功能之間解耦,為更新和擴(kuò)展提供了良好的代碼基礎(chǔ)。服務(wù)器各個(gè)功能以組件的形式設(shè)計(jì),每個(gè)組件都可以單獨(dú)替換,并且這些設(shè)計(jì)對(duì)客戶端透明,服務(wù)器端的組件替換和性能優(yōu)化不需要修改客戶端。使用語言無關(guān)的JSON數(shù)據(jù)交換格式,也使客戶端可以有多種不同平臺(tái)的實(shí)現(xiàn)。

        參考文獻(xiàn):

        [1] Craig Walls. Spring實(shí)戰(zhàn)[M].4版.北京: 人民郵電出版社, 2016.

        [2] 李剛. 輕量級(jí)JavaEE企業(yè)應(yīng)用實(shí)戰(zhàn)[M].4版.北京: 電子工業(yè)出版社, 2014.

        [3] Eric Freeman. HeadFirst設(shè)計(jì)模式:中文版[M].北京: 中國(guó)電力出版社, 2017.

        [4] Kirk Knoernschild. Java應(yīng)用架構(gòu)設(shè)計(jì):模塊化模式與OSGI[M].北京:機(jī)械工業(yè)出版社, 2016.

        [5] Ben Forta. MySQL必知必會(huì)[M].北京:人民郵電出版社, 2009.

        [通聯(lián)編輯:謝媛媛]

        成午夜福利人试看120秒| 国产视频不卡在线| 91精品国产综合久久久蜜臀九色| 亚洲av手机在线网站| 免费高清av一区二区三区 | 97色伦图片97综合影院久久| 99亚洲乱人伦精品| 亚洲一区中文字幕一区| 久久人人爽av亚洲精品| 国产人妻精品一区二区三区不卡| 日韩久久久黄色一级av| 国产精品亚洲一区二区三区久久| 国产午夜福利片在线观看| 黑人玩弄漂亮少妇高潮大叫| 亚洲ⅤA中文字幕无码| 手机在线播放成人av| 人妻丰满熟av无码区hd| 国模无码人体一区二区| 亚洲美女国产精品久久久久久久久| 亚洲乱妇熟女爽到高潮视频高清| 亚洲愉拍99热成人精品热久久 | 国产精品一区2区三区| 精品熟女av中文字幕| 粗大的内捧猛烈进出小视频| 亚洲第一成人网站| 青青草原亚洲在线视频| 一区二区三区天堂在线| 亚洲码欧美码一区二区三区| 亚洲一区二区三区精品久久av | 制服丝袜人妻中文字幕在线| 青草青草伊人精品视频| 精品人妻一区二区三区狼人 | 欧美又大粗又爽又黄大片视频| 人妻无码αv中文字幕久久琪琪布 美女视频黄的全免费视频网站 | 久久久高清免费视频| 久久伊人精品色婷婷国产| 极品白嫩的小少妇| 伊人22综合| 中文字幕亚洲精品综合| 十八禁视频网站在线观看| 天天躁人人躁人人躁狂躁|