国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Dubbo+NoSQL的工業(yè)領(lǐng)域大數(shù)據(jù)平臺研究

2017-09-09 11:17:27趙德基王力狄軍峰
關(guān)鍵詞:工業(yè)領(lǐng)域

趙德基+王力+狄軍峰

摘要:基于Dubbo與NoSQL的工業(yè)領(lǐng)域大數(shù)據(jù)平臺,是在互聯(lián)網(wǎng)技術(shù)不斷發(fā)展的趨勢下,將傳統(tǒng)工業(yè)與大數(shù)據(jù)技術(shù)相結(jié)合的產(chǎn)物。隨著計算機硬件性能的不斷提升以及互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,以往在工業(yè)領(lǐng)域內(nèi)海量數(shù)據(jù)無法處理的局面得到了根本性的解決。大數(shù)據(jù)平臺充分結(jié)合了傳統(tǒng)工業(yè)領(lǐng)域,尤其包括電力行業(yè)、建筑行業(yè)、污水處理行業(yè)的各自特點。在不同場景的業(yè)務(wù)需求下,Dubbo+NoSQL的技術(shù)提供了對工業(yè)領(lǐng)域海量數(shù)據(jù)進行接收、存儲、計算、分析及展示的解決方案。不僅改變了以往傳統(tǒng)行業(yè)技術(shù)落后的現(xiàn)狀,平臺更加注重對傳統(tǒng)行業(yè)的數(shù)據(jù)進行專業(yè)化處理,對低價值密度的數(shù)據(jù)進行加工,實現(xiàn)數(shù)據(jù)的增值。對行業(yè)安全、行業(yè)發(fā)展、行業(yè)數(shù)字化都具有十分重要的意義。

關(guān)鍵詞:Dubbo;NoSQL;MongoDB;工業(yè)領(lǐng)域

中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1007-9416(2017)07-0064-04

由于傳統(tǒng)工業(yè)領(lǐng)域?qū)A繑?shù)據(jù)的分析及存儲能力不足,各個領(lǐng)域?qū)ι纤偷臄?shù)據(jù)通常采取舍棄的處理方式。以電力行業(yè)新能源領(lǐng)域的集中式光伏電站為例,一個百兆瓦的集中式光伏電站有數(shù)以千計的設(shè)備,每個設(shè)備又有不同數(shù)量的遙測、遙信、遙控及遙調(diào)信息,大量的設(shè)備數(shù)據(jù)會以每分鐘甚至每秒鐘的頻率進行上送。因此傳統(tǒng)行業(yè)管理系統(tǒng)面臨以下問題。

(1)系統(tǒng)性能處理瓶頸。由于需要接收、處理的數(shù)據(jù)量過大,系統(tǒng)的負荷過高,無法對數(shù)據(jù)進行實時、可靠、深挖掘的處理,因此傳統(tǒng)領(lǐng)域的系統(tǒng)對海量數(shù)據(jù)往往只能采取不接收,或者接收不存儲、不分析的解決方案。

(2)系統(tǒng)存儲能力不足。由于大數(shù)據(jù)在高并發(fā)環(huán)境下的關(guān)系型數(shù)據(jù)庫應(yīng)用開發(fā)越來越復(fù)雜,也越來越具有技術(shù)挑戰(zhàn)性。雖然關(guān)系型數(shù)據(jù)庫例如MySQL可以存儲一些大文本字段,但是會導(dǎo)致數(shù)據(jù)庫表非常的大,不利于快速恢復(fù)數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫雖然功能強大,但是已經(jīng)不能很好的應(yīng)對所有的應(yīng)用場景。

(3)系統(tǒng)擴展性差。當(dāng)需要有新的功能對原系統(tǒng)進行補充時,傳統(tǒng)管理系統(tǒng)的擴展性較差。無法做到功能模塊可插拔,進而無法快速適應(yīng)業(yè)務(wù)的不斷變化,增大了開發(fā)難度和維護難度。

1 研究內(nèi)容

針對工業(yè)領(lǐng)域傳統(tǒng)系統(tǒng)的不足,本系統(tǒng)采用Dubbo與NoSQL的分布式架構(gòu),對工業(yè)領(lǐng)域大數(shù)據(jù)進行處理。系統(tǒng)以Dubbo為大數(shù)據(jù)處理核心,以NoSQL為大數(shù)據(jù)存儲核心,使以往工業(yè)領(lǐng)域中的海量數(shù)據(jù)的處理及存儲有了可能。

1.1 Dubbo技術(shù)

1.1.1 技術(shù)背景

隨著工業(yè)領(lǐng)域數(shù)據(jù)規(guī)模不斷擴大,常規(guī)的架構(gòu)已無法應(yīng)對,急需一個大數(shù)據(jù)平臺對工業(yè)領(lǐng)域數(shù)據(jù)進行管理。

如圖1所示,當(dāng)工業(yè)領(lǐng)域的數(shù)據(jù)量很小時,只需要一個應(yīng)用便可以將所有功能部署在一起,減少部署節(jié)點和成本。此時,使用數(shù)據(jù)訪問框架(ORM)對數(shù)據(jù)進行增刪改查即可滿足工業(yè)領(lǐng)域需求。

隨著數(shù)據(jù)量越來越大,單一應(yīng)用通過增加機器的方式帶來的速度提升越來越小,針對此問題的普遍做法是將應(yīng)用拆分成互不相干的幾個應(yīng)用,以提升效率。

但當(dāng)垂直應(yīng)用越來越多時,應(yīng)用之間的交互不可避免,因此之后又發(fā)展出了用于提高業(yè)務(wù)復(fù)用及整合的分布式服務(wù)框架(RPC)。

最后,當(dāng)服務(wù)越來越多時,容量的評估、小服務(wù)資源的浪費問題逐漸顯現(xiàn),此時資源調(diào)度和治理中心(SOA)出現(xiàn),對集群容量進行調(diào)度提升集群利用率。

Dubbo便是一個分布式服務(wù)框架,致力于提供高性能和透明化的RPC遠程服務(wù)調(diào)用方案以及SOA服務(wù)治理方案。通過使用Dubbo框架,便可以解決工業(yè)領(lǐng)域內(nèi)海量數(shù)據(jù)處理以及應(yīng)用越來越多的問題。

1.1.2 架構(gòu)及特點

Dubbo架構(gòu)圖如圖2。

Dubbo有幾個關(guān)鍵節(jié)點的角色:

(1)Container:服務(wù)運行容器。

服務(wù)調(diào)用時,Container負責(zé)啟動、加載,并運行服務(wù)提供者。

(2)Provider:暴露服務(wù)的服務(wù)提供商。

服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù);

(3)Consumer:調(diào)用遠程服務(wù)的服務(wù)消費方。

服務(wù)消費者在啟動時,向注冊中心訂閱自己所需的服務(wù);

(4)Registry:服務(wù)注冊于發(fā)現(xiàn)的注冊中心。

注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,將基于長連接推送變更數(shù)據(jù)給消費者;

(5)Monitor:監(jiān)控中心。

用于統(tǒng)計服務(wù)的調(diào)用次數(shù)和調(diào)用時間。

其中,服務(wù)消費者基于軟負載均衡算法,從提供者地址列表中選一臺提供者進行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。服務(wù)消費者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。

Dubbo透明化的遠程方法調(diào)用,就像調(diào)用本地方法一樣,只需簡單配置,不需要任何API侵入;軟負載均衡及容錯機制,可以內(nèi)網(wǎng)代替硬件負載均衡器,降低成本,減少單點;服務(wù)自動注冊與發(fā)現(xiàn),不需要寫死服務(wù)提供方地址,注冊中心基于接口名查詢服務(wù)提供者的IP地址,并且能夠平滑添加或刪除服務(wù)提供者。需要添加新的應(yīng)用模塊時,不用修改舊的系統(tǒng)代碼,只需簡單修改配置文件即可實現(xiàn)。降低了工業(yè)領(lǐng)域內(nèi)系統(tǒng)升級或整合的難度。

以服務(wù)提供者為例,Sping配置如下:

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi=http://Data.w3.org/2001/XMLSchema-instance xmlns:dubbo ="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://Data.springframework.org/schema/beans

http://Data.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!-- 提供方應(yīng)用信息,用于計算依賴關(guān)系 -->

<!--multicast廣播注冊中心暴露服務(wù)地址-->

<!-- 用dubbo協(xié)議在20880端口暴露服務(wù) -->

<!-- 聲明需要暴露的服務(wù)接口 -->

<!-- 和本地bean一樣實現(xiàn)服務(wù) -->

1.2 NoSQL技術(shù)

1.2.1 技術(shù)背景

傳統(tǒng)工業(yè)領(lǐng)域一般使用關(guān)系型數(shù)據(jù)庫進行數(shù)據(jù)存儲和管理。關(guān)系型數(shù)據(jù)庫性能可靠、使用簡單、功能強大,當(dāng)數(shù)據(jù)量不大時,關(guān)系型數(shù)據(jù)庫可以滿足存儲及增刪改查的需求。但當(dāng)數(shù)據(jù)量不斷增加,系統(tǒng)面臨數(shù)據(jù)處理的性能瓶頸。首先,數(shù)據(jù)的高并發(fā)寫入,會使關(guān)系型數(shù)據(jù)庫寫入壓力增加,甚至出現(xiàn)嚴重的鎖問題,造成數(shù)據(jù)丟失。其次,當(dāng)關(guān)系型數(shù)據(jù)庫存儲的數(shù)據(jù)量越來越大時,多表關(guān)聯(lián)進行的查詢也會受到影響。同時當(dāng)存儲一些大文本字段時,會導(dǎo)致數(shù)據(jù)庫表非常的大,不易快速恢復(fù)數(shù)據(jù)庫。

因此傳統(tǒng)工業(yè)領(lǐng)域亟待NoSQL的引入,對不斷增加的業(yè)務(wù)數(shù)據(jù)進行存儲和管理。NoSQL指非關(guān)系型數(shù)據(jù)庫,是對不同于傳統(tǒng)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱,用于大規(guī)模數(shù)據(jù)的存儲。這些類型的數(shù)據(jù)不需要固定的模式,無需多余操作就可以橫向擴展。本系統(tǒng)采用NoSQL中MongoDB對數(shù)據(jù)進行存儲。

1.2.2 技術(shù)實現(xiàn)

MongoDB是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。在高負載的情況下,可以添加更多的節(jié)點,保證服務(wù)器性能。當(dāng)工業(yè)數(shù)據(jù)不斷增加時,MongoDB本身的特點決定了MongoDB可以很好的支持傳統(tǒng)工業(yè)領(lǐng)域的數(shù)據(jù)存儲要求。

(1)實用性。MongoDB是一個面向文檔的數(shù)據(jù)庫,直接存取BSON,這意味著MongoDB更加靈活,因為它可以在文檔中直接插入數(shù)組之類的復(fù)雜數(shù)據(jù)類型。同時文檔的key和value不是固定的數(shù)據(jù)類型和大小,所以使用MongoDB時無須預(yù)定義關(guān)系型數(shù)據(jù)庫中的”表”等數(shù)據(jù)庫對象,設(shè)計數(shù)據(jù)庫將變得非常方便,可以大大地提升系統(tǒng)開發(fā)進度;

(2)擴展性。MongoDB可以非常有效的對數(shù)據(jù)庫進行擴展,通過自帶的MongoDB集群,只需要在適當(dāng)?shù)臅r候繼續(xù)添加Mongo分片,既可以實現(xiàn)程序段自動水平擴展和路由,不但緩解了單個節(jié)點的讀寫壓力,并且可以有效地均衡磁盤容量的使用情況;

(3)負載均衡。MongoDB通過自帶副本集做到對數(shù)據(jù)的備份,同時通過設(shè)計適合自己業(yè)務(wù)的副本集驅(qū)動程序,非常有效和方便的實現(xiàn)高可用及讀負載均衡。這一點其他的數(shù)據(jù)庫會比較難以實現(xiàn),往往需要額外的中間件,進而造成了系統(tǒng)的復(fù)雜度;

(4)其他特性。MongoDB保留了一些SQL的友好特性,例如查詢和索引,因此可以支持任何屬性的索引來實現(xiàn)更快的排序,最終獲得用戶需要的數(shù)據(jù)。

因此,本系統(tǒng)使用MongoDB數(shù)據(jù)庫對工業(yè)領(lǐng)域內(nèi)不斷增加的海量數(shù)據(jù)進行存儲管理,其完全滿足工業(yè)領(lǐng)域內(nèi)的各個場景。不同領(lǐng)域的數(shù)據(jù)都可以借助MongoDB以上的各種特性,實現(xiàn)數(shù)據(jù)的分布式存儲、備份冗余、動態(tài)查詢、故障轉(zhuǎn)移等功能。

以MongoDB分片為例:MongoDB集群示意圖如圖3所示。

本系統(tǒng)通過對MongoDB進行分片,實現(xiàn)對工業(yè)領(lǐng)域內(nèi)海量數(shù)據(jù)的分布式存儲。系統(tǒng)部署四個分片,并部署配置服務(wù)器和路由服務(wù)器:

Shard Server 1:27000 #分片服務(wù)器1

Shard Server 4:27003 #分片服務(wù)器4

Config Server :27100 #配置服務(wù)器

Route Process:40000 #路由服務(wù)器

啟動各個服務(wù)器后,便可將MongoDB與Dubbo框架進行對接,或者通過第三方的MongoDB客戶端對MongoDB進行操作:

[root@100 /]# mkdir -p /Data/mongoDB/shard/s0

[root@100 /]# mkdir -p /Data/mongoDB/shard/s3

[root@100 /]# mkdir -p /Data/mongoDB/shard/log

[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27000 --dbpath=/Data/mongoDB/shard/s0 --logpath=/Data/mongoDB/shard/log/s0.log --logappend --fork

[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27003 --dbpath=/Data/mongoDB/shard/s3 --logpath=/Data/mongoDB/shard/log/s3.log --logappend –fork

root@100 /]# mkdir -p /Data/mongoDB/shard/config

[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27100 --dbpath=/Data/mongoDB/shard/config --logpath=/Data/mongoDB/shard/log/config.log --logappend --fork

/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/Data/mongoDB/shard/log/route.log --chunkSize 500

2 結(jié)語

Dubbo+NoSQL工業(yè)領(lǐng)域大數(shù)據(jù)平臺可以解決傳統(tǒng)工業(yè)領(lǐng)域中存在的數(shù)據(jù)處理和存儲面臨的問題。當(dāng)需要長時間處理一些復(fù)雜算法時,可以利用Dubbo進行負載均衡,提高運行速度并降低每個服務(wù)器節(jié)點的負載壓力。當(dāng)由于業(yè)務(wù)需要擴展系統(tǒng)時,也只需水平增加機器即可達到性能的提升,不需要購置性能更強勁同時更昂貴的服務(wù)器,從而減少了企業(yè)的成本。另外MongoDB本身具備的彈性擴容、備份管理、監(jiān)控告警及故障處理等功能,也很好的為工業(yè)領(lǐng)域不斷增長的數(shù)據(jù)提供了解決方案。

綜上所述,Dubbo+NoSQL工業(yè)領(lǐng)域大數(shù)據(jù)平臺體現(xiàn)了互聯(lián)網(wǎng)技術(shù)與傳統(tǒng)工業(yè)領(lǐng)域業(yè)務(wù)的良好結(jié)合,為傳統(tǒng)工業(yè)挖掘了更多的數(shù)據(jù)價值并開拓了更多應(yīng)用上的可能性。

由于業(yè)務(wù)場景在不斷發(fā)生變化,本系統(tǒng)架構(gòu)還會遇到新的挑戰(zhàn),需要不斷的優(yōu)化和改進。

參考文獻

[1]霍多羅夫,迪洛爾夫.MongoDB權(quán)威指南[M].北京:人民郵電出版社,2011:50.

[2]任女爾,張慶余,林盛海.基于Dubbo+ZooKeeper的CAMDS協(xié)同業(yè)務(wù)改造[J].電腦知識與技術(shù),2016,11(2):35-38.

[3]陸操.阿里巴巴聯(lián)盟引流系統(tǒng)的設(shè)計與實現(xiàn)[J].南京大學(xué), 2015,5(1):10.

[4]劉嘉俊.基于SOA架構(gòu)的ERP與電子商務(wù)系統(tǒng)研究[J].企業(yè)經(jīng)濟,2011(5):88-90.

[5]陳裕,林輝.基于SOA的ERP系統(tǒng)架構(gòu)模型研究[J].信息經(jīng)濟學(xué)與電子商務(wù):中國信息經(jīng)濟學(xué)會學(xué)術(shù)年會,2008,11(1):20.

[6]汪清明.基于SOA的ERP系統(tǒng)體系結(jié)構(gòu)的研究[J].計算機應(yīng)用,2007,5(2):412-414.

[7]A Boicea,F(xiàn) Radulescu,LI Agapin. MongoDB vs Oracle -- Database Comparison[J]. International Conference on Emerging Intelligent Data & Web Technologies,2012,11(1):20.

[8]Z Parker,S Poe, SV Vrbsky. Comparing NoSQL MongoDB to an SQL DB[J]. Acm Southeast Conference, 2013.11(1):1-6.

[9]JR Loureno,B Cabral,P Carreiro,M Vieira,J Bernardino.Choosing the right NoSQL database for the job: a quality attribute evaluation[J].Journal of Big Data,2015,2(1):18.endprint

猜你喜歡
工業(yè)領(lǐng)域
電氣化在工業(yè)領(lǐng)域中的應(yīng)用與發(fā)展探析
魅力中國(2017年34期)2017-09-11 08:37:12
電子技術(shù)的發(fā)展與應(yīng)用研究
淺析電子信息工程在工業(yè)領(lǐng)域的應(yīng)用及重要作用
魅力中國(2016年42期)2017-07-05 09:00:20
低壓配電網(wǎng)中有源電力濾波器的仿真研究
電子信息工程在工業(yè)領(lǐng)域設(shè)計中的應(yīng)用研究
電子信息工程在工業(yè)領(lǐng)域的設(shè)計與應(yīng)用
中國新通信(2017年4期)2017-04-10 10:44:23
電氣化在工業(yè)領(lǐng)域中的應(yīng)用與發(fā)展研究
電子信息工程發(fā)展存在的問題及在工業(yè)領(lǐng)域的應(yīng)用
中文信息(2016年9期)2017-02-04 18:10:31
計算機軟件系統(tǒng)開發(fā)在工業(yè)領(lǐng)域中的應(yīng)用
機械工程及自動化在工業(yè)領(lǐng)域的發(fā)展方向及前景
凤庆县| 天津市| 手游| 阿拉善右旗| 页游| 游戏| 天等县| 增城市| 广宁县| 含山县| 西乌珠穆沁旗| 柯坪县| 潍坊市| 平塘县| 伊川县| 太原市| 弥勒县| 通渭县| 永修县| 九龙坡区| 密山市| 金川县| 秦皇岛市| 平顺县| 酒泉市| 山阳县| 昌图县| 桓台县| 嘉祥县| 井冈山市| 屏东县| 岐山县| 杭锦旗| 静宁县| 鲁山县| 若尔盖县| 阿合奇县| 朝阳市| 根河市| 阜阳市| 东乌珠穆沁旗|