日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 《機(jī)電信息》
[導(dǎo)讀]隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,采用B/S架構(gòu)應(yīng)用成為企業(yè)信息化主流。但網(wǎng)絡(luò)應(yīng)用也存在服務(wù)無法訪問、異常等問題,造成用戶體驗(yàn)不佳等?,F(xiàn)在應(yīng)用缺少監(jiān)測(cè)手段,故障發(fā)現(xiàn)周期長(zhǎng),進(jìn)而解決緩慢,甚至有些情況下會(huì)導(dǎo)致業(yè)務(wù)受影響中斷,但無告警產(chǎn)生,直到用戶投訴大量產(chǎn)生時(shí),系統(tǒng)故障才被發(fā)現(xiàn)。

引言

隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,采用B/S架構(gòu)應(yīng)用成為企業(yè)信息化主流。但網(wǎng)絡(luò)應(yīng)用也存在服務(wù)無法訪問、異常等問題,造成用戶體驗(yàn)不佳等?,F(xiàn)在應(yīng)用缺少監(jiān)測(cè)手段,故障發(fā)現(xiàn)周期長(zhǎng),進(jìn)而解決緩慢,甚至有些情況下會(huì)導(dǎo)致業(yè)務(wù)受影響中斷,但無告警產(chǎn)生,直到用戶投訴大量產(chǎn)生時(shí),系統(tǒng)故障才被發(fā)現(xiàn)。

因此,監(jiān)控保障應(yīng)用穩(wěn)定性變得尤為重要。撥測(cè)系統(tǒng)扮演著關(guān)鍵角色,相比于傳統(tǒng)人工接收故障工單反饋,它能在提升應(yīng)用穩(wěn)定性方面發(fā)揮重要作用,通過對(duì)網(wǎng)絡(luò)應(yīng)用的實(shí)時(shí)測(cè)量,幫助用戶快速識(shí)別問題,快速響應(yīng)處理并解決問題,縮短故障的持續(xù)時(shí)間,減小影響范圍。

1撥測(cè)系統(tǒng)原理

與被動(dòng)模式相反,撥測(cè)系統(tǒng)[1]采用主動(dòng)模式,它通過內(nèi)部觸發(fā)接口調(diào)用判斷和監(jiān)控應(yīng)用的正確性來監(jiān)控保障應(yīng)用的穩(wěn)定性。業(yè)務(wù)應(yīng)用程序?qū)ν獗┞督涌?撥測(cè)系統(tǒng)通過模擬客戶端或者web瀏覽器向應(yīng)用程序發(fā)送請(qǐng)求,應(yīng)用程序接收請(qǐng)求后對(duì)接收到的數(shù)據(jù)做處理,同時(shí)向撥測(cè)系統(tǒng)返回請(qǐng)求應(yīng)答,然后撥測(cè)系統(tǒng)解析響應(yīng)體是否符合預(yù)期,判斷應(yīng)用程序是否正常,是否對(duì)外正常提供服務(wù),可以幫助確保應(yīng)用程序的質(zhì)量和可靠性。

通常判斷響應(yīng)體是否符合預(yù)期有以下兩種方式:

1)判斷響應(yīng)狀態(tài)碼[2]:應(yīng)用程序默認(rèn)請(qǐng)求成功會(huì)返回狀態(tài)碼200;假如請(qǐng)求錯(cuò)誤返回400、404、500等狀態(tài)碼,則意味著web應(yīng)用出錯(cuò)。

2)判斷響應(yīng)數(shù)據(jù):通過相等、包含、正則表達(dá)式等手段檢查數(shù)據(jù)特性是否正確與完整,從而判斷應(yīng)用程序的正確性。

2接口測(cè)試工具對(duì)比

撥測(cè)系統(tǒng)底層采用接口測(cè)試方式實(shí)現(xiàn)。市面上有很多測(cè)試工具可供選擇,下面就常見的三種方式進(jìn)行介紹:

1)編程方式:使用開源社區(qū)封裝的Http客戶端工具包,通過編寫程序方式調(diào)用接口,接收響應(yīng),判斷檢測(cè)結(jié)果。此方式靈活性、定制化程度高,但耦合性也同樣高,后續(xù)修改可能大,不利于擴(kuò)展。

2)P0stman工具[3]:它是一款輕量級(jí)接口測(cè)試工具,主要測(cè)試RESTful[4]接口,其特點(diǎn)包括簡(jiǎn)單易用、界面簡(jiǎn)潔、快速上手;專注于Http請(qǐng)求,功能相對(duì)簡(jiǎn)單,響應(yīng)斷言支持不夠。它適合作為一個(gè)獨(dú)立工具,在開發(fā)、自測(cè)階段供程序員使用。

3)JMeter工具[5]:它是Apache基金會(huì)開發(fā)的一款功能全面的性能測(cè)試工具,既支持性能測(cè)試,也支持接口測(cè)試。純Java跨平臺(tái)工具,支持winD0ws、Linux多平臺(tái);功能強(qiáng)大,支持編程式的前置后置處理,靈活度高;可作為獨(dú)立工具使用,也提供開發(fā)庫方便程序使用。

通過上述接口測(cè)試工具的對(duì)比可知,JMeter工具既可作為獨(dú)立工具做接口測(cè)試和排錯(cuò),又可被程序調(diào)用使用,功能強(qiáng)大,擴(kuò)展能力強(qiáng),自研系統(tǒng)將基于JMeter腳本設(shè)計(jì)撥測(cè)系統(tǒng)。

3自研撥測(cè)系統(tǒng)

3.1創(chuàng)建JMeter腳本步驟

自研撥測(cè)系統(tǒng)以JMeter腳本為核心,圍繞Jmx腳本上傳、執(zhí)行、結(jié)果解析、告警構(gòu)建業(yè)務(wù)系統(tǒng),因此在詳細(xì)介紹系統(tǒng)設(shè)計(jì)之前,有必要就如何創(chuàng)建JMeter腳本做簡(jiǎn)要介紹。按照下述步驟創(chuàng)建Jmx腳本:

1)啟動(dòng)JMeter應(yīng)用:進(jìn)入JMeter—Home下的bin目錄,雙擊jmeter.bat文件啟動(dòng)程序界面;

2)創(chuàng)建測(cè)試計(jì)劃:打開JMeter后,首先創(chuàng)建測(cè)試計(jì)劃,選中“測(cè)試計(jì)劃”,右鍵選擇添加“線程組”,在線程組界面根據(jù)需要設(shè)置線程數(shù)、啟動(dòng)時(shí)間、循環(huán)次數(shù)等參數(shù);

3)添加采樣器:在線程組處右鍵,選擇添加“HTTP Request”采樣器,在HTTP采樣器界面上填寫服務(wù)器IP、端口、路徑、請(qǐng)求方式、參數(shù)等信息;

4)添加配置元素:根據(jù)需要,可以在線程組和采樣器上添加配置元素,比如添加Http cookie管理器、Http請(qǐng)求頭管理器、默認(rèn)配置等內(nèi)容;

5)添加預(yù)處理和后處理器:在線程組和采樣器上增加處理器,用于對(duì)采樣器發(fā)送請(qǐng)求前的攔截處理、響應(yīng)后的數(shù)據(jù)處理;

6)添加斷言:在采樣器上添加斷言,用于驗(yàn)證服務(wù)器響應(yīng)是否符合預(yù)期;

7)添加監(jiān)聽器:在線程組上添加各類監(jiān)聽器,對(duì)線程組下所有采樣器的執(zhí)行數(shù)據(jù)進(jìn)行收集、分析和展示。

通過上述步驟,完成對(duì)第三方接口的測(cè)試配置,點(diǎn)擊“運(yùn)行”按鈕測(cè)試接口正確性,這樣就完成了一個(gè)JMeter腳本的編寫,最后點(diǎn)擊“保存”按鈕會(huì)生成一個(gè)Jmx腳本文件,自研撥測(cè)系統(tǒng)利用Jmx文件實(shí)現(xiàn)應(yīng)用的撥測(cè)功能。

3.2架構(gòu)設(shè)計(jì)

自研撥測(cè)系統(tǒng)采用程序加JMeter腳本方式設(shè)計(jì)實(shí)現(xiàn)。圖1展示了整個(gè)系統(tǒng)的設(shè)計(jì)圖,整個(gè)系統(tǒng)分為三個(gè)部分:

第一部分生成Jmx文件,利用前面小節(jié)的JMeter創(chuàng)建步驟,編寫、調(diào)試并生成Jmx腳本,保證Jmx正確實(shí)現(xiàn)對(duì)第三方應(yīng)用程序的接口調(diào)用。

第二部分是自研撥測(cè)系統(tǒng),它由多個(gè)模塊組成,模塊相互配合,完成Jmx腳本的保存/執(zhí)行、結(jié)果的解析、異常告警的觸發(fā)。

第三部分為第三方應(yīng)用服務(wù),它們對(duì)外開放暴露接口,方便撥測(cè)系統(tǒng)檢測(cè)服務(wù)狀態(tài)。

3.3模塊設(shè)計(jì)

依據(jù)撥測(cè)系統(tǒng)架構(gòu)設(shè)計(jì),撥測(cè)系統(tǒng)共分為6個(gè)模塊,分別為upload配置模塊、調(diào)度器模塊、JMeter引擎模塊、日志模塊、告警模塊、查詢模塊。

3.3.1 upload配置模塊

該模塊提供JMeter腳本文件的配置維護(hù)功能,負(fù)責(zé)將JMeter腳本文件從本地上傳到業(yè)務(wù)服務(wù)器上。在用戶界面上使用“文件上傳”組件,同時(shí)錄入腳本文件的相關(guān)信息,例如:腳本描述、告警接收人、告警接收人郵箱、抄送人郵箱、腳本的時(shí)間調(diào)度表達(dá)式。該模塊除持久化腳本文件數(shù)據(jù)外,還會(huì)根據(jù)調(diào)度表達(dá)式調(diào)用調(diào)度器模塊。

3.3.2調(diào)度器模塊

調(diào)度器模塊采用任務(wù)方式管理維護(hù),用戶使用上傳配置模塊完成腳本文件上傳后,調(diào)度器模塊會(huì)新建一個(gè)周期任務(wù)。周期任務(wù)可以按秒、分鐘、小時(shí)、天、周、月等時(shí)間周期執(zhí)行。服務(wù)端的調(diào)度框架有很多,這里采用spring的Taskschedule[6]實(shí)現(xiàn),它是一個(gè)輕量級(jí)的任務(wù)調(diào)度器,允許開發(fā)者輕松地安排和管理周期性任務(wù),如定時(shí)統(tǒng)計(jì)數(shù)據(jù)、定時(shí)清理緩存等。它是spring自帶的調(diào)度框架,開發(fā)者無須引入額外的第三方類庫,無須安裝額外的第三方服務(wù),集成方便;無須編寫復(fù)雜的代碼,易于使用;支持多種任務(wù)執(zhí)行策略,靈活度高。當(dāng)任務(wù)觸發(fā)時(shí)間到達(dá)后,調(diào)度器模塊會(huì)調(diào)用JMeter引擎模塊。

3.3.3 JMeter引擎模塊

JMeter引擎模塊用來調(diào)用JMeter腳本文件,生成測(cè)試報(bào)告。制作腳本文件使用JMeter圖形化界面方式,而這里利用JMeter程序開發(fā)庫實(shí)現(xiàn)。在自研撥測(cè)系統(tǒng)里引入開發(fā)庫,導(dǎo)入并使用已定義的類和方法完成腳本文件的執(zhí)行。

3.3.4日志模塊

JMeter腳本的運(yùn)行結(jié)果是Html報(bào)告文件,日志模塊會(huì)將Html報(bào)告整體打包壓縮,保存在對(duì)象服務(wù)器Minio中;同時(shí)解析報(bào)告文件夾中的JSON數(shù)據(jù),判斷本次撥測(cè)結(jié)果。如果運(yùn)行成功,僅僅將日志記錄持久化到數(shù)據(jù)庫,后續(xù)為查詢模塊提供數(shù)據(jù)。如果運(yùn)行失敗,通知告警模塊進(jìn)行處理,并將日志記錄持久化到數(shù)據(jù)庫中。

3.3.5告警模塊

該模塊用于發(fā)送通知,當(dāng)JMeter腳本運(yùn)行失敗時(shí),根據(jù)上傳腳本時(shí)預(yù)先設(shè)置的發(fā)送人郵箱、抄送人郵箱,給責(zé)任人發(fā)送郵件告警,同時(shí)郵箱附件包括Html報(bào)告。最后將日志記錄狀態(tài)從未處理更新為已處理。

3.3.6查詢模塊

該模塊提供靈活的查詢條件,方便用戶根據(jù)需要篩選和查詢?nèi)罩?。例如根?jù)日志狀態(tài)查詢歷史日志數(shù)據(jù),便于對(duì)問題進(jìn)行回溯和分析。同時(shí),將調(diào)度器模塊的能力暴露給用戶,用戶可以查詢調(diào)度任務(wù),查看正在運(yùn)行的調(diào)度任務(wù)并針對(duì)任務(wù)進(jìn)行手動(dòng)啟動(dòng)、停止、刪除操作。

3.4數(shù)據(jù)庫設(shè)計(jì)

根據(jù)撥測(cè)系統(tǒng)的模塊設(shè)計(jì),提取業(yè)務(wù)概念名詞抽象出數(shù)據(jù)庫實(shí)體表,upload配置模塊對(duì)應(yīng)script表,調(diào)度器模塊對(duì)應(yīng)task表,日志模塊對(duì)應(yīng)log-record表,告警模塊對(duì)應(yīng)alarm-record表。系統(tǒng)里一個(gè)JMeter腳本上傳配置完成后,script表新增一條腳本記錄,task表也新增一條對(duì)應(yīng)任務(wù)記錄,log-record和alarm-record表隨著腳本被定時(shí)調(diào)度以及告警觸發(fā)與清除在對(duì)應(yīng)表里新增若干記錄。

下面詳細(xì)介紹四張表擁有的字段含義:

1)script表記錄腳本信息,包含腳本名稱、腳本描述、腳本文件所在地址、觸發(fā)時(shí)間cron表達(dá)式、腳本告警接收人郵箱、告警抄送人郵箱列表信息。

2)task表記錄任務(wù)信息,task-id是任務(wù)主鍵,script-id是外鍵,指向script表,task和script一對(duì)一關(guān)系,每當(dāng)新增一條script記錄,就會(huì)同步新增一條task任務(wù),同時(shí)在程序內(nèi)存里的調(diào)度器模塊會(huì)新增一個(gè)任務(wù)對(duì)象,用于等待觸發(fā)任務(wù)執(zhí)行。

3)log-record表記錄腳本運(yùn)行日志數(shù)據(jù)。script-id是外鍵,指向script表。task每運(yùn)行一次,log-record就新增一條記錄。status字段表示本次運(yùn)行結(jié)果成功還是失敗;report-url字段表示本次運(yùn)行產(chǎn)生的報(bào)告文件地址;process-flag字段針對(duì)失敗狀態(tài)時(shí)有效,標(biāo)記是否已經(jīng)處理發(fā)送告警。

4)alarm-record表存儲(chǔ)發(fā)送告警的數(shù)據(jù)記錄。log-record-id是外鍵,指向log-record表,表示當(dāng)前告警來源于哪一個(gè)日志記錄。script-id字段是外鍵,冗余字段,方便快速找到告警對(duì)應(yīng)的腳本信息數(shù)據(jù)。alarm-type字段是告警類型,可選值有上報(bào)告警和清除告警兩種。valid字段表示當(dāng)前告警有效性,用于實(shí)現(xiàn)發(fā)送清除告警功能。

4自研撥測(cè)系統(tǒng)的優(yōu)點(diǎn)

自研的撥測(cè)系統(tǒng)采用程序和JMeter腳本方式,具有很多優(yōu)點(diǎn)。

1)程序和腳本耦合低:意味著它們之間的依賴較少,互相影響較小。這樣的設(shè)計(jì)有助于降低系統(tǒng)復(fù)雜性,提高代碼的可維護(hù)性和可讀性。通過模塊化封裝,可以將程序和腳本分離,使得職責(zé)和功能更為清晰。

2)擴(kuò)展容易:程序和腳本分離的設(shè)計(jì)使得系統(tǒng)具有較好的可擴(kuò)展性。當(dāng)需要新增功能和修改現(xiàn)有功能時(shí),可以在不影響其他部分的前提下獨(dú)立對(duì)腳本進(jìn)行調(diào)整。

3)調(diào)試方便靈活:程序和腳本耦合低、職責(zé)分明的情況下,排查和調(diào)試問題變得更加容易。當(dāng)出現(xiàn)問題時(shí),可以快速定位故障邊緣和故障源,并通過腳本進(jìn)行調(diào)試驗(yàn)證。

4)支持豐富:依托JMeter的接口類型多樣性能力,還可以支持?jǐn)?shù)據(jù)庫、Dubbo等形式的接口測(cè)試,提供多樣的撥測(cè)能力,但程序調(diào)用方式固定不變。

總之,程序和腳本方式耦合度低、職責(zé)分明、擴(kuò)展容易、調(diào)試方便靈活,有助于提高軟件的質(zhì)量、可靠性和可維護(hù)性,同時(shí)降低了開發(fā)和運(yùn)維的難度。

5結(jié)束語

本文介紹了撥測(cè)系統(tǒng)的重要性、應(yīng)用價(jià)值、基本工作原理以及各種接口測(cè)試工具的差異,然后展示了JMeter腳本的創(chuàng)建步驟,接著詳細(xì)說明了自研撥測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)施過程,最后對(duì)自主研發(fā)的撥測(cè)系統(tǒng)架構(gòu)的優(yōu)點(diǎn)進(jìn)行了闡述。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉