国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式計算實驗4 隨機信號分析系統(tǒng)

這篇具有很好參考價值的文章主要介紹了分布式計算實驗4 隨機信號分析系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、實驗要求

利用MOM消息隊列技術(shù)實現(xiàn)一個分布式隨機信號分析系統(tǒng),具體要求:
1.隨機信號產(chǎn)生器微服務(wù)每隔100毫秒左右就產(chǎn)生一個正態(tài)分布的隨機數(shù)字,并作為一個消息發(fā)布。
2.一個隨機信號統(tǒng)計分析微服務(wù),對信號進行如下分析:

??(1) 計算過去N個隨機信號的均值和方差(N為常量,可設(shè)置);

??(2) 計算所有歷史數(shù)據(jù)中的最大值和最小值;

??(3) 定時地將分析結(jié)果打包成一個新消息并通過MOM發(fā)布出去。

3.一個實時數(shù)據(jù)顯示微服務(wù):

??(1) 實時繪制過去一段時間內(nèi)隨機信號的折線圖;

??(2) 實時顯示隨機信號統(tǒng)計分析結(jié)果。

二、設(shè)計說明

1. 面向消息的中間件MOM

??MOM(Message Oriented Middleware)是面向消息的中間件,使用消息提供者來協(xié)調(diào)消息傳送操作。這種松耦合的通信機制有助于降低客戶端和遠(yuǎn)程服務(wù)之間的依賴性。

??生產(chǎn)者負(fù)責(zé)向分布式消息隊列中發(fā)送消息,消費者從隊列中取出消息。生產(chǎn)者不必關(guān)心消費者是誰,反之亦然,這降低了分布式節(jié)點之間的耦合度,提升了系統(tǒng)的通信效率。當(dāng)消費者未上線或者消費者速度慢于生產(chǎn)者時,生產(chǎn)者可以將消息先緩存于消息隊列中,待消費者上線后,消費者可以繼續(xù)從隊首取出消息,這種模式提高了系統(tǒng)的容錯能力。

2. ActiveMQ

??ActiveMQ是Apache軟件基金會所研發(fā)的開放源代碼消息中間件,完全兼容JMS(Java Message Service),能夠為多種編程語言提供客戶端API。本實驗主要基于ActiveMQ和JMS實現(xiàn)了題目相關(guān)要求。

3. 基于ActiveMQ的隨機信號分析系統(tǒng)
(1) 設(shè)計思想

?? (a) 隨機信號發(fā)生微服務(wù)作為生產(chǎn)者,每隔100ms生成一個高斯分布隨機值并且作為消息發(fā)布出去,主題名為RandGaussian。

?? (b) 信號分析微服務(wù)作為消費者,訂閱主題名為RandGaussian的消息,每次從消息隊列中取出一個隨機信號加入自己維護的數(shù)組中,然后對數(shù)組中的元素進行處理,得到信號的統(tǒng)計分析結(jié)果(均值、方差、最小值、最大值等等)。與此同時,該分析器還作為生產(chǎn)者,每隔2s將先前得到的信號分析結(jié)果以空格隔開,打包成字符串形式的消息發(fā)布出去,主題名為AnalysisRes。

?? ? 分析結(jié)果可視化微服務(wù)同樣作為消費者。由于題目要求將過去一段時間的信號動態(tài)顯示出來,也要求把信號分析結(jié)果顯示出來,因此我讓信號分析微服務(wù)在發(fā)送消息時,把當(dāng)前的信號值也封裝在消息中,這樣可視化微服務(wù)只需要訂閱主題為AnalysisRes的消息即可獲取全部所需數(shù)據(jù)。在獲取到所需數(shù)據(jù)后,我利用tablesaw可視化工具提供的折線圖繪制功能將數(shù)據(jù)可視化到了網(wǎng)頁頁面中,一幅折線圖中集成了當(dāng)前信號值、過去N個數(shù)的均值以及歷史最大最小值,且用不同顏色加以區(qū)分,可以達(dá)到一個比較好的視覺效果。

(2) 具體實現(xiàn)步驟

??為了具體實現(xiàn)題目要求,我編寫了3個.java文件,分別為Publisher.javaAnalyzer.javaVisualizer.java,這3個模塊分別負(fù)責(zé)實現(xiàn)隨機信號產(chǎn)生器微服務(wù)、隨機信號統(tǒng)計分析微服務(wù)和實時數(shù)據(jù)顯示微服務(wù)。

??Publisher.java文件中只有一個Publisher類。首先定義實例構(gòu)造函數(shù)Pulisher(String topicName),通過該函數(shù)我們可以實例化一個新的、綁定名為topicName(本實驗中即為RandGaussian)的主題的publisher對象并且啟動與MOM的連接。其次,我定義了一個sendNum(double mu ,double sigma)函數(shù),功能是根據(jù)用戶輸入的高斯分布的均值和方差產(chǎn)生一個符合該分布的隨機數(shù)值,并利用producer.send()將該數(shù)值的字符形式當(dāng)成消息發(fā)布出去。最后,還定義了一個sendAnalysis(int num, int N, double value, double mean, double var, double min, double max)函數(shù),該函數(shù)負(fù)責(zé)將信號分析結(jié)果封裝成以空格分隔的字符串消息并發(fā)布出去。在Publisher類的主方法中,首先需要用戶輸入高斯分布的均值和方差,然后程序循環(huán)生成隨機數(shù)并發(fā)布,間隔100毫秒后發(fā)布下一條消息。

??Analyzer.java文件中有兩個類,第一個是public class Analyzer類,主要實現(xiàn)對消費者對象的初始化(綁定主題RandGaussian)、獲取用戶輸入的N值以及設(shè)置消息監(jiān)聽器,最后啟動與MOM的連接。另一個類是MyListener1,即消息監(jiān)聽類。在該類中我重寫了onMessage函數(shù),使其能夠?qū)崿F(xiàn)題目的要求:開辟一個動態(tài)數(shù)組,每隔一段時間從消息隊列中取得一個隨機數(shù)并加入該數(shù)組,然后利用該數(shù)組即可求出過去N個信號的均值和方差,也可以求出全局的最小值和最大值。在得到一次分析的所有結(jié)果后,只需實例化一個publisher2對象,再調(diào)用Publisher類提供的sendAnalysis方法即可將分析結(jié)果打包成字符串發(fā)布出去(主題設(shè)為AnalysisRes)。

??Visualizer.java文件中有兩個類,public class Visualizer類負(fù)責(zé)初始化消費者對象(訂閱主題為AnalysisRes的消息)、設(shè)置監(jiān)聽器以及開啟連接。另一個類是MyListener2,即消息監(jiān)聽類。在onMessage函數(shù)中,首先需要對得到的消息進行解包,這里我利用的是String.split(" ")函數(shù)對字符串進行分解,再將結(jié)果傳入analysis數(shù)組中。解包之后,便可以將各類統(tǒng)計數(shù)據(jù)分別add到相應(yīng)的動態(tài)數(shù)組中保存,便于后續(xù)的可視化操作。最后,設(shè)置一個Thread.sleep(2000),即實現(xiàn)每隔2s從消息隊列中取一個隨機信號進行分析。

?? 在可視化模塊,我采用的是tech.tablesaw工具包中的Plot.show(LinePlot)函數(shù)。由于我想在同一幅圖中將若干統(tǒng)計結(jié)果一起繪制出來,則需要將各個統(tǒng)計結(jié)果的橫軸數(shù)值數(shù)組、縱軸數(shù)值數(shù)組和類型名數(shù)組分別合并到3個大數(shù)組中,這導(dǎo)致有一部分的代碼顯得比較冗長。由于在Visualizer.java中設(shè)置了Thread.sleep(2000),因此在可視化模塊中只需要不斷地取出統(tǒng)計分析結(jié)果,即可實現(xiàn)每隔2s顯示可視化結(jié)果。如果sleep時間設(shè)置得太短,則會導(dǎo)致瞬間產(chǎn)生很多統(tǒng)計圖表,人眼看不過來,所以為了簡潔,我將sleep時間設(shè)為了2s,可以起到接近實時的效果。

三、實驗結(jié)果

在Visualizer主類的命令行中,是實時顯示的統(tǒng)計分析結(jié)果(過去N個信號的均值、方差和全局最小值最大值等):
分布式計算實驗4 隨機信號分析系統(tǒng)
瀏覽器頁面在不斷實時顯示隨機信號統(tǒng)計分析的可視化折線圖,各種統(tǒng)計量的變化一目了然:
分布式計算實驗4 隨機信號分析系統(tǒng)
補充說明:可視化部分我采用的工具tablesaw在渲染HTML頁面時調(diào)用的是https://cdn.plot.ly/plotly-latest.min.js提供的JavaScript代碼,而該CDN節(jié)點有時存在不穩(wěn)定的情況,可能導(dǎo)致頁面渲染失敗,但仍能從網(wǎng)頁源代碼處看到圖表背后的數(shù)據(jù),例如:
分布式計算實驗4 隨機信號分析系統(tǒng)文章來源地址http://www.zghlxwxcb.cn/news/detail-424880.html

源碼:分布式計算實驗4 隨機信號分析系統(tǒng)

到了這里,關(guān)于分布式計算實驗4 隨機信號分析系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 云計算實驗2 Spark分布式內(nèi)存計算框架配置及編程案例

    云計算實驗2 Spark分布式內(nèi)存計算框架配置及編程案例

    掌握分布式多節(jié)點計算平臺Spark配置,Spark編程環(huán)境IDEA配置,示例程序啟動與運行 Linux的虛擬機環(huán)境、線上操作視頻和實驗指導(dǎo)手冊 完成Spark開發(fā)環(huán)境安裝、熟悉基本功能和編程方法。 請按照線上操作視頻和實驗指導(dǎo)手冊 ,完成以下實驗內(nèi)容: 實驗2-1 Spark安裝部署:Standal

    2023年04月13日
    瀏覽(88)
  • 大數(shù)據(jù) | 實驗零:安裝 Hadoop 偽分布式系統(tǒng)

    大數(shù)據(jù) | 實驗零:安裝 Hadoop 偽分布式系統(tǒng)

    ?? 前言 :本篇是個人配置環(huán)境的總結(jié),基于指導(dǎo)書,補充了許多在配置過程中出現(xiàn)的問題的解決細(xì)節(jié)。希望能幫到你??。 Vmware workstation pro 16 Ubuntu 20.04 JDK 1.8 Hadoop 3.2.2 下邊資源是本篇博客會用到的相關(guān)文件 (建議直接下載,相關(guān)代碼直接對應(yīng)的下述文件, 下載完先不要動

    2023年04月17日
    瀏覽(15)
  • 頭歌Educoder云計算與大數(shù)據(jù)——實驗五 Java API分布式存儲

    原始電商數(shù)據(jù)都是存儲在關(guān)系型數(shù)據(jù)庫或 NoSQL 數(shù)據(jù)庫上的,是面向OLTP(聯(lián)機事務(wù)處理過程)的;數(shù)據(jù)都是面向業(yè)務(wù)的,而不是面向分析。因此數(shù)據(jù)比較復(fù)雜,表很多關(guān)聯(lián)的數(shù)據(jù)是分散的,不利于統(tǒng)計分析;因此需要把數(shù)據(jù)從多個表里導(dǎo)出來、聯(lián)合起來,找出分析所需要的數(shù)據(jù)項

    2023年04月09日
    瀏覽(94)
  • 分布式任務(wù)調(diào)度系統(tǒng)分析

    分布式任務(wù)調(diào)度系統(tǒng)分析

    首先,我們來思考一些幾個業(yè)務(wù)場景: XX 信用卡中心,每月 28 日凌晨 1:00 到 3:00 需要完成全網(wǎng)用戶當(dāng)月的費用清單的生成 XX 電商平臺,需要每天上午 9:00 開始向會員推送送優(yōu)惠券使用提醒 XX 公司,需要定時執(zhí)行 Python 腳本,清理掉某文件服務(wù)系統(tǒng)中無效的 tmp 文件 最開始,

    2023年04月22日
    瀏覽(39)
  • Ceph分布式存儲系統(tǒng)優(yōu)化分析

    Ceph分布式存儲系統(tǒng)優(yōu)化分析

    ????????Ceph支持多種存儲訪問接口,現(xiàn)有的多種性能測試工具都可用于Ceph的性能測試,如測試塊接口性能的fio,iometer等;測試CephFS接口的filebench,fio等;測試對象接口的cosbench等。Ceph有專用的基準(zhǔn)測試集CBT,其包含radosbench,librbdfio,kvmrbdfio和rbdfio。radosbench基準(zhǔn)測試使用

    2024年02月12日
    瀏覽(22)
  • 【分布式技術(shù)】ELK大型日志收集分析系統(tǒng)

    【分布式技術(shù)】ELK大型日志收集分析系統(tǒng)

    目錄 步驟一:完成JAVA環(huán)境部署 步驟二:部署ES節(jié)點(三臺主機) 步驟三:內(nèi)核參數(shù)修改 步驟四:web端查看驗證 步驟五:yum安裝nginx ?步驟六:完成logstash部署 步驟七:部署kibana ?步驟八:測試ELK

    2024年01月20日
    瀏覽(34)
  • 分布式ELK 企業(yè)級日志分析系統(tǒng)

    分布式ELK 企業(yè)級日志分析系統(tǒng)

    ELK平臺是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統(tǒng)計需求。 ElasticSearch :是基于Lucene(一個全文檢索引擎的架構(gòu))開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。Elasticsearch 是用

    2024年02月16日
    瀏覽(23)
  • Java分布式系統(tǒng)和云計算教程

    Java分布式系統(tǒng)和云計算教程

    Java分布式系統(tǒng)和云計算教程 大規(guī)模學(xué)習(xí)分布式 Java 應(yīng)用程序、并行編程、分布式計算和云軟件架構(gòu) 課程英文名:Distributed Systems Cloud Computing with Java 此視頻教程共4.0小時,中英雙語字幕,畫質(zhì)清晰無水印,源碼附件全 課程編號:324 百度網(wǎng)盤地址:https://pan.baidu.com/s/1qGJzKMXt

    2024年02月01日
    瀏覽(28)
  • 分布式系統(tǒng)之P2P,云計算,霧計算

    分布式系統(tǒng)之P2P,云計算,霧計算

    一.P2P cs構(gòu)架的問題:負(fù)載(If too many users access the server/s at the same time, such architecture can suffer from network overload problem.(slow down, long Queues, carsh)同時太多的用戶訪問服務(wù)器就會影響服務(wù)器性能) 定義:計算任務(wù)由多個節(jié)點協(xié)同完成,而不是依賴于一個中心節(jié)點或服務(wù)器。 每個節(jié)

    2024年02月02日
    瀏覽(24)
  • 【分布式應(yīng)用】ELK企業(yè)級日志分析系統(tǒng)

    【分布式應(yīng)用】ELK企業(yè)級日志分析系統(tǒng)

    目錄 一、ELK 簡介 1.1 ELK各組件介紹 ElasticSearch: Kiabana: Logstash: 1.2 可以添加的其它組件: Filebeat: 緩存/消息隊列(redis、kafka、RabbitMQ等): Fluentd: 1.3 ELK、ELFK、EFLKL 二、為什么要使用 ELK 三、完整日志系統(tǒng)基本特征 四、ELK 的工作原理 五、ELK集群部署 實驗環(huán)境: 實驗步

    2024年02月14日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包