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.

【通聯編輯:王力】

主站蜘蛛池模板: 国产剧情一区二区| 有专无码视频| 国产免费福利网站| 99热这里只有精品在线播放| aa级毛片毛片免费观看久| 九九热视频在线免费观看| 欧美区国产区| 国产第三区| 国产精品私拍99pans大尺度| 这里只有精品在线播放| 国产在线精品人成导航| 九九久久精品免费观看| 国产一区二区影院| 日韩欧美在线观看| 另类欧美日韩| 在线观看网站国产| 国内精品视频| 久久综合亚洲色一区二区三区| 成人在线不卡| 国产91在线免费视频| 欧美精品一区二区三区中文字幕| 亚洲视频欧美不卡| 国产精品第页| 1024你懂的国产精品| 国产99热| 国产超碰一区二区三区| 中文字幕在线日本| 又爽又大又光又色的午夜视频| 国产免费福利网站| 亚洲欧美综合精品久久成人网| 亚洲国产清纯| 国产欧美网站| 欧美日韩精品一区二区视频| 永久免费无码成人网站| 2020国产在线视精品在| 色综合国产| 91午夜福利在线观看| 伊人色在线视频| 五月婷婷综合在线视频| 国产成人高清精品免费| 99性视频| 亚洲欧洲日产国产无码AV| 精品国产91爱| 污网站免费在线观看| 国产精选小视频在线观看| 秋霞午夜国产精品成人片| 1769国产精品视频免费观看| 色135综合网| 国产人成网线在线播放va| 被公侵犯人妻少妇一区二区三区| 99久久人妻精品免费二区| 国产成人在线无码免费视频| 亚洲成肉网| 亚洲第一区在线| 国产欧美日韩在线一区| 婷婷六月在线| 亚洲欧美日韩成人高清在线一区| 99精品国产电影| 国产精品视频导航| 亚洲综合片| 久久香蕉国产线| 日韩黄色精品| 亚洲啪啪网| 54pao国产成人免费视频| 人人澡人人爽欧美一区| 日韩东京热无码人妻| 91久久偷偷做嫩草影院精品| 91人人妻人人做人人爽男同| 国产精品久久久久婷婷五月| 亚洲欧洲日产国产无码AV| 国产午夜人做人免费视频中文| 青青操视频在线| 中文无码日韩精品| 2021国产精品自拍| 91在线高清视频| 欧亚日韩Av| 草草影院国产第一页| 精品国产一区二区三区在线观看| 91精品国产福利| 欧美性天天| 亚洲第一网站男人都懂| 欧美一级专区免费大片|