999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式日志采集系統設計

2019-08-10 06:36:17代乾坤
電腦知識與技術 2019年17期

代乾坤

摘要:應用系統的分布式部署已成為應用程序高擴展、高并發性能的必然要求。分布式應用系統部署為業務系統的監控帶來一定的難題。基于全國芯片印章多中心模式部署現狀,在調研現有日志采集系統的基礎上,結合業務流程、數據特點,設計了一套高效可行的分布式日志采集系統。

關鍵詞:分布式文件系統;非結構化存儲;面向切面編程;消息中間件;SATA

中圖分類號:TP311? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)17-0009-03

開放科學(資源服務)標識碼(OSID):

Abstract: Distributed deployment of application systems has become an inevitable requirement for high scalability and concurrent performance of applications. The deployment of distributed application system brings some difficulties to the monitoring of business system. Based on the current situation of multi-center mode deployment of chip seals in China, an efficient and feasible distributed log acquisition system is designed on the basis of investigating the existing log acquisition system and combining the business process and data characteristics.

Key words: distributed file system; unstructured storage;? message oriented middleware; SATA

1 引言

隨著信息技術的快速發展,系統日志數據呈現爆炸式的增長,且分布式系統部署為系統的業務及運行監控帶來了一定的難題。為提升全國印章業芯片印章系統集成應用水平,設計了全國芯片印章多中心模式日志采集系統,為芯片印章發行業務的大數據分析提供基礎數據。

目前系統日志的收集方式各異,并各有優缺點,比較常見的日志系統包括facebook的scribe,apache的chukwa,linkedin的kafka和cloudera的flume等[1]。以上日志采集方式對目前業務系統來講,不能很好地與業務系統融合,當需要將這些日志系統整合到全國芯片印章業務系統時,需要做大量的整合工作,且業務代碼層面也需要做出修改,因此基于現有全國芯片印章業務系統,構建開發了分布式日志采集系統。

2 關鍵技術

2.1 AOP切面編程

AOP(Aspect-Oriented Programming),其實是OOP(Object-Oriented Programing)思想的補充和完善。OOP引進抽象、封裝、繼承、多態等概念,對多樣化的實體進行抽象和封裝,并建立層次分明的實體對象,它強調建立一種自上而下的實體間的關系。當需要具體到每個實體內部的情況,OOP有些捉襟見肘,比如日志功能、權限控制。此類代碼往往離散的分布在所有對象當中,卻與它所在對象的核心功能無關,導致了大量代碼的重復,不利于各個模塊的重用。

AOP技術則恰恰相反,它利用一種稱為“橫切”的技術,能夠剖解開封裝的對象內部,并將那些影響了多個類并且與具體業務無關的公共行為封裝成一個獨立的模塊(稱為切面)。更重要的是,它又能以巧奪天工的妙手將這些剖開的切面復原,不留痕跡的融入核心業務邏輯中[2]。這樣,對于日后橫切功能的編輯和重用都能夠帶來極大的方便。

2.2 ActiveMQ消息中間件

消息隊列對于如今的分布式系統,具有天然的優勢,并逐漸發展為獨立的中間件產品,采用異步通信具有邏輯的低耦合性、消息的順序性、消息的可靠性、緩沖業務并發等優點。服務與服務間的通信采用消息隊列模式,可以實現異步通信,降低服務間的耦合性[3]。消息隊列可以將大量的高峰期請求數據存儲起來慢慢回調業務模塊進行處理,對于搶購、秒殺等業務極為重要,并且消息隊列的順序性也保證了先進先出的業務要求[4]。

ActiveMQ是Apache公司的產品,是目前比較流行的,能力強勁的開源消息總線。ActiveMQ是一個完全支持JMS1.1和J2EE 1.4規范的JMS Provider實現,盡管JMS規范出臺已經很久,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。ActiveMQ消息隊列可配置兩種模式,“生產者消費者”模式和“訂閱發布”模式,兩種模式的業務模型見圖1和圖2。

ActiveMQ生產者消費者模型就是在一個系統中,存在數據的生產者和消費者兩種角色,生產者和消費者共用同一存儲空間,生產者向空間里寫入數據,而消費者取走數據[5]。生產者消費者模型可以有多個生產者及多個消費者,消息生產后只能由一個消費者消費,基于消息隊列的存儲-轉發機制,能夠基于消息傳輸和異步事務處理實現應用整合與數據交換。降低系統功能耦合性、提高業務并發處理能力。

在訂閱發布模型中,生產者和消費者之間含有一個發布通道,此時通道可以理解為一個消息隊列,消息隊列從生產者接收消息,消費者向消息隊列注冊,消息隊列把接收到的消息向注冊后的消費者發布。訂閱發布模型中,一條發布信息可以被多個已注冊消費者消費。

2.3 非結構化存儲

NoSQL,泛指非關系型的數據庫。關系型數據庫中,表都是存儲格式化結構的數據,每個元組字段的組成都是一樣的,即使不是每個元組都需要所有的字段,但數據庫會為每個元組都分配所有的字段,這樣的結構可以便于表與表之間進行連接等操作,但從另一個角度來說它也是關系數據庫性能瓶頸的一個因素[6]。而非關系數據庫以鍵值對存儲,它的結構不固定,每一個元組可以有不一樣的字段,每個元組可以根據需要增加或減少一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。

MongoDB是NoSql的一種,屬于NoSql中的基于分布式文件存儲的文檔型數據庫。由C++語言編寫,旨在為WEB應用提供可擴展的高性能數據存儲解決方案[6][7]。MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似json的BSON(類json的二進制形式的存儲格式,簡稱Binary JSON)格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引[7][8]。

3 系統設計

分布式日志采集系統整體架構分為數據生產、數據緩存、數據消費、數據存儲,由全國芯片印章業務系統輸出日志數據,日志數據在業務系統中存儲在消息中間件ActiveMQ中,ActiveMQ驅動消息服務發送消息到日志采集系統。日志采集系統提供數據接收接口,接收到的數據緩存到ActiveMQ中,可以提高日志接收能力。ActiveMQ驅動消息服務集群完成數據的轉換、清洗并保存到非結構化數據庫MongoDB中。

3.1 數據生產

分布式日志采集系統日志由業務系統的JBOSS產生,為了業務系統的最小代碼改造,系統采用Spring的AOP對日志業務進行切面編程,采集到的日志數據發送給消息中間件進行存儲。AOP切面的使用,簡化了業務系統的改到難度,降低了系統的耦合性,對分布式日志采集系統的順利部署上線提供了很大的幫助。

3.2 數據緩存

為了解決大量業務日志的輸出對系統業務并發能力的影響,在業務系統將日志數據生產者產生的日志,發送到消息中間件進行緩存。采用消息隊列的技術實現,提高了日志采集的性能和可靠性。消息中間件的使用,極大地降低了日志采集對主業務并發性能的影響。

當多個業務系統采集到的數據并發發送到日志采集系統后,大量的日志數據勢必會對數據接收的吞吐量提出更高的要求,并可能造成來數據丟失。為了提高日志采集系統日志接收接口的性能,采用緩存層對接收到的數據進行緩存。緩存層采用開源消息隊列中間件ActiveMQ實現。日志采集接收接口接收到的數據直接放入ActiveMQ中,提高了日志采集系統的數據接收能力。

3.3 數據消費

當ActiveMQ中有新的日志消息存儲時,消息驅動Bean被調用,由消息驅動Bean完成對數據的發送,發送成功的數據由消息驅動Bean發送ACK給ActiveMQ,消息隊列把數據標記為已發送狀態,完成數據的發送。日志采集系統完成分布式日志的接收,接收到的數據首先緩存在ActiveMQ中,進一步由消息驅動Bean主動處理接收到的數據。

3.4 數據存儲

日志數據為低價值的數據,使用傳統的關系型數據庫存儲成本較高,并且隨著日志數據的累計,性能會急劇下降。Mongo非常適合實時的插入,更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性。且MongoDB已經包含對大數據計算MapReduce引擎的內置支持,為日志的大數據分析計算提供便利。MongoDB的分片部署,非常適合服務器的橫向伸縮,且分布式文件系統自身的安全機制,可以采用較為廉價的SATA硬盤存儲數據,節約了存儲本。

消息驅動服務在完成數據的讀取后,經過相應邏輯的轉換、清洗,保存到分布式文件服務系統中,此處因為無事務性,故采用非結構化數據庫MongoDB作為日志數據的存儲數據庫。

4 結論

全國芯片印章系統多中心模式部署,業務系統分散,業務系統的運行日志的收集為系統運行行為分析提供基礎數據。采用AOP切面技術,對業務系統的改造最小,完成了日志收集與業務系統的低耦合。采用消息中間件對收集到的日志數據進行緩存,降低了對業務系統并發性能的影響。采用非結構化數據庫存儲技術,提高了日志采集系統日志接收處理能力,且MongoDB的分片部署,數據的分布存儲,數據安全性交由MongoDB分布式文件系統管理,存儲設備采用廉價的SATA機械盤即可,極大節約了存儲成本。

參考文獻:

[1] 羅東鋒,李芳,郝汪洋,等.基于Docker的大規模日志采集與分析系統[J].計算機系統應用,2017,26(10):82-88.

[2] 王萌.一種高可用Web服務平臺的研究與實現[D].西安電子科技大學,2012.

[3] 吳一男.分布式交易系統平臺中消息中間件的設計與實現[D].浙江大學,2006.

[4] 于曦,李丹.面向消息的中間件概述[J].成都大學學報(自然科學版),2002(4):34-36.

[5] 方瑜慶.高速公路收費及管理系統中分布式消息系統的應用[J].中國交通信息化,2016(1):98-106.

[6] 陳衛衛,王艷.基于NoSQL數據庫的通用數據存儲結構的設計方案[J].價值工程,2012,31(26):191-192.

[7] 白長清,劉敏.MongoDB在氣象傳感器數據處理中的應用[J].軟件,2015,36(11):34-37.

[8] 徐旭平,李小勇.基于MongoDB的元數據管理研究[J].信息技術,2018,42(8):87-93.

【通聯編輯:王力】

主站蜘蛛池模板: 青青网在线国产| 乱系列中文字幕在线视频| 免费一级无码在线网站| 國產尤物AV尤物在線觀看| 精品少妇人妻av无码久久| 亚洲av无码成人专区| 欧美午夜在线观看| 国产成人一区免费观看| 国产情侣一区二区三区| 91在线播放免费不卡无毒| 99久久这里只精品麻豆| 亚洲成人播放| 国产美女91视频| 亚洲欧美不卡视频| 九九精品在线观看| 天堂在线视频精品| 国产色伊人| 97超爽成人免费视频在线播放| 国产麻豆aⅴ精品无码| 乱码国产乱码精品精在线播放| 91午夜福利在线观看| 久久精品国产在热久久2019| 国产精品久久自在自线观看| 国产精品视频白浆免费视频| 国产精品久久久久久搜索| 国产一级视频久久| 国产av色站网站| 久久无码av一区二区三区| 国产爽妇精品| 伊人成人在线| 国产在线观看91精品| 性欧美在线| 成人韩免费网站| 国产人人乐人人爱| 精品无码一区二区三区在线视频| 91精品人妻一区二区| 四虎影视8848永久精品| 国产熟女一级毛片| 欧美一区国产| 91九色视频网| 国产精品爽爽va在线无码观看 | 人妻丰满熟妇AV无码区| 91成人在线观看| 中文成人在线视频| 欧美午夜视频在线| 在线视频亚洲欧美| 在线免费无码视频| 国产欧美精品一区二区| 夜夜拍夜夜爽| 爱爱影院18禁免费| 一级毛片免费不卡在线 | 国产爽妇精品| 91黄色在线观看| 亚洲日韩日本中文在线| 亚洲精品中文字幕无乱码| 久久久噜噜噜久久中文字幕色伊伊 | 国产人成乱码视频免费观看| 小说区 亚洲 自拍 另类| 成人一区在线| 欧美精品xx| 国产在线一二三区| igao国产精品| 国产日韩精品欧美一区灰| 2020精品极品国产色在线观看 | 伊人网址在线| 91黄视频在线观看| 伊人AV天堂| 亚洲动漫h| 在线观看精品自拍视频| 激情网址在线观看| 亚洲人成网址| 亚洲精品午夜天堂网页| 青青国产视频| 好吊日免费视频| 99这里精品| 亚洲一本大道在线| 色婷婷成人网| 精品国产一区91在线| 91麻豆久久久| 国产在线观看99| 国产精品成人久久| 最新国产麻豆aⅴ精品无|