摘要:嘗試目標(biāo)下一步是連接前端和序列化服務(wù),實(shí)現(xiàn)在前端圖表中讀取傳感器發(fā)送的數(shù)據(jù)。序列化服務(wù)對應(yīng)的更新后前端程序位于面臨的挑戰(zhàn)是啟動數(shù)據(jù)庫前端程序序列化服務(wù)。系統(tǒng)啟動費(fèi)后,可以使用腳本下用檢查運(yùn)行狀態(tài)。
整體架構(gòu)
這章節(jié)我們將為系統(tǒng)建立一個簡單的前端界面。首先安裝一些依賴環(huán)境并運(yùn)行起來,按照下面的步驟開始:
如果還沒有準(zhǔn)備好,可以先在獲取的代碼倉庫 micro-services-tutorial-iot 下運(yùn)行npm install命令,完成之后運(yùn)行如下命令:
cd frontend/api
node index.js
打開瀏覽器(推薦使用chrome、firefox),輸入地址http://localhost:10001. 可以看到一張圖表,簡單吧。
嘗試目標(biāo)0接下來將開始建立數(shù)據(jù)庫。這步將借助于Docker,如果沒有鏡像,可以使用一行命令獲?。?/p>
docker pull tutum/influxdb
如何運(yùn)行influxdb容器可以參考文檔: https://hub.docker.com/r/tutu...
難點(diǎn)是運(yùn)行起influxDB容器,一旦成功運(yùn)行,可以在瀏覽器中查看influx的網(wǎng)頁界面。
目標(biāo)0實(shí)現(xiàn)步驟
使用如下命令啟動容器
docker run -d -p 8083:8083 -p 8086:8086 tutum/influxdb
在step1/services/influx/文件夾中有簡便啟動influx容器的命令集
使用命令獲取容器中的IP地址
docker-machine ip default
在瀏覽器中輸入http://
-p 參數(shù)用于將容器的8083、8086端口暴露給宿主機(jī);
-d 參數(shù)告知docker運(yùn)行后臺模式
當(dāng)在本地運(yùn)行docker容器時,特別留意每個多帶帶的虛擬機(jī)使用各自的IP地址(尤其是Mac系統(tǒng)、Windows系統(tǒng))
使用docker kill命令可以隨時停止容器
嘗試目標(biāo)1目前數(shù)據(jù)庫已經(jīng)運(yùn)行,接下來將創(chuàng)建微服務(wù)用于讀寫數(shù)據(jù)庫。已經(jīng)編寫好了序列化服務(wù)代碼,位于step1/services/serializer文件夾下
當(dāng)前目標(biāo)是編寫一個小腳本,運(yùn)行后可將溫度數(shù)據(jù)寫進(jìn)influx數(shù)據(jù)庫。當(dāng)服務(wù)啟動后,可以使用下面的命令將數(shù)據(jù)點(diǎn)提交給服務(wù)程序。
curl -X POST -d "{"role": "serialize", "cmd": "write", "sensorId": "1", "temperature": 32}" http://localhost:10000/act --header "Content-Type:application/json"
提示 如果檢查serializer.js源文件 ,可以發(fā)現(xiàn)使用了下列環(huán)境變量:
INFLUX_HOST
serializer_PORT
初始化腳本應(yīng)確保正確設(shè)置了上述變量數(shù)據(jù)
通過瀏覽器中的influx網(wǎng)頁界面輸入下列查詢語句,可以檢查數(shù)據(jù)點(diǎn)被真實(shí)寫入influx中
use temperature; select * from temperature;目標(biāo)1實(shí)現(xiàn)步驟
在step2/services/influx文件夾包含influx容器啟動腳本
在step2/services/serializer文件夾包含序列化服務(wù)源代碼
使用 step2/services/serializer/run.sh (Windows用run.bat)腳本啟動服務(wù)
使用 step2/services/serializer/testWrite.sh (windows用testWrite.bat)腳本發(fā)送測試數(shù)據(jù)
使用influx控制臺查看數(shù)據(jù)點(diǎn)
注意 序列化程序是一種seneca1微服務(wù)。Seneca作為獨(dú)立層可實(shí)現(xiàn)多種傳輸機(jī)制,包括TCP, HTTP, RabbitMQ, Redis, NATS等。在本教程中,使用Json格式數(shù)據(jù)通過HTTP傳輸機(jī)制。
嘗試目標(biāo)2下一步是連接前端和序列化服務(wù),實(shí)現(xiàn)在前端圖表中讀取傳感器發(fā)送的數(shù)據(jù)。
序列化服務(wù)對應(yīng)的更新后前端程序位于 step2/frontend.
面臨的挑戰(zhàn)是啟動Influx數(shù)據(jù)庫、前端程序、序列化服務(wù)。需要編寫腳本實(shí)現(xiàn)啟動前端服務(wù)和序列化服務(wù)。
當(dāng)啟動這兩個服務(wù),使用testWrite.sh腳本發(fā)送數(shù)據(jù)到influx數(shù)據(jù)庫后,就可以在前端頁面查看。
注意 如檢查更新后的前端代碼,可發(fā)現(xiàn)如下環(huán)境變量
PROXY_HOST
serializer_PORT
frontend_PORT
在打開前端前,需要設(shè)置上述變量。
目標(biāo)2實(shí)現(xiàn)步驟使用step3/services/influx下的腳本啟動influx容器
運(yùn)行腳本 step3/services/serializer/run.sh (windows下用 run.bat) 啟動序列化服務(wù)
Start the frontend with the script 運(yùn)行腳本step3/frontend/run.sh (or run.bat)啟動前端界面
在瀏覽器中輸入 http://localhost:10001/顯示前端頁面
使用腳本step3/services/serializer/testWrite.sh (windows下用 testWrite.bat)發(fā)送一些測試數(shù)據(jù)
前端頁面中應(yīng)出現(xiàn)數(shù)據(jù)點(diǎn)的表格
嘗試目標(biāo)3現(xiàn)在系統(tǒng)只有3個模塊,但已經(jīng)很難管理。在這步中,面臨的挑戰(zhàn)是讓系統(tǒng)通過Fuge運(yùn)行。Fuge是一種微服務(wù)開發(fā)環(huán)境,幫助簡化應(yīng)對本地進(jìn)程和docker容器
在 step3/fuge 包含兩個文件:
compose-dev.yml - 使用docker compose格式指定系統(tǒng)所用的進(jìn)程等
fuge-config.json - fuge全局配置文件
面臨的挑戰(zhàn)是使用fuge終端運(yùn)行系統(tǒng),可以查看fuge相關(guān)文檔https://github.com/apparatus/...。 系統(tǒng)啟動費(fèi)后,可以使用腳本step3/services/serializer/testWrite.sh (windows下用testWrite.bat)檢查運(yùn)行狀態(tài)。前端頁面圖表可直觀展示數(shù)據(jù)。
提示 必須先停止之前所有進(jìn)程及容器
提示 確認(rèn)使用 npm install -g fuge命令安裝了fuge.
提示 可以使用 fuge shell 開啟fuge終端
目標(biāo)3實(shí)現(xiàn)步驟step4/fuge 文件夾包含fuge終端的配置
啟動fuge
fuge shell fuge/compose-dev.yml
啟動所有服務(wù)
start all
打開 http://localhost:10001 查看圖表
使用腳本 step4/services/serializer/testWrite.sh 發(fā)送數(shù)據(jù)到序列化服務(wù)
注意 Fuge用于關(guān)聯(lián)進(jìn)程和dock 容器,使用如下機(jī)制:
注入環(huán)境變量到每一個進(jìn)程
啟動內(nèi)部代理,在進(jìn)程和容器間進(jìn)行橋接
本系列文章:
按步搭建簡單IoT微服務(wù)(1)
按步搭建簡單IoT微服務(wù)(2)
按步搭建簡單IoT微服務(wù)(3)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27512.html
摘要:最近工作轉(zhuǎn)型到數(shù)據(jù)開發(fā)領(lǐng)域,想在本地搭建一個數(shù)據(jù)開發(fā)環(huán)境。自己有三年開發(fā)經(jīng)驗(yàn),馬上想到使用搭建一套數(shù)據(jù)開發(fā)環(huán)境。的環(huán)境,百度中文章比較多,搭建起來非常順利。環(huán)境的資料比較少,百度出來的,已經(jīng)不對了,那我就來補(bǔ)充一篇吧。 最近工作轉(zhuǎn)型到數(shù)據(jù)開發(fā)領(lǐng)域,想在本地搭建一個數(shù)據(jù)開發(fā)環(huán)境。自己有三年python開發(fā)經(jīng)驗(yàn),馬上想到使用numpy、scipy、sklearn、pandas搭建一套數(shù)據(jù)開...
摘要:阿里巴巴全資收購中天微年月,阿里巴巴宣布全資收購中天微,具體金額并未透露。阿里云在今年月份的深圳云棲大會上表示,阿里云的定位是物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的搭建者,計劃在未來年內(nèi)連接億臺設(shè)備?;仡?018年的云計算市場,可算是風(fēng)起云涌:云計算巨頭們依然保持著驚人的高速增長,大刀闊斧的進(jìn)行架構(gòu)調(diào)整、并購重組,企圖在云計算賽道上實(shí)現(xiàn)彎道超車;行業(yè)新進(jìn)的創(chuàng)新公司則依然保持著十足的活力,在各大細(xì)分領(lǐng)域展現(xiàn)出無比的...
摘要:除了一些線程調(diào)度和線程模型的調(diào)整,我們還需要進(jìn)行業(yè)務(wù)邏輯上的優(yōu)化,比如縮減高消耗,低反饋的業(yè)務(wù)模塊,降低消耗,限制業(yè)務(wù)邏輯隊列內(nèi)存分配增長空間,避免某些業(yè)務(wù)場景中內(nèi)存持續(xù)增長導(dǎo)致系統(tǒng)奔潰。 1、HaaS RTC背景介紹 HaaS RTC是阿里云IoT聯(lián)合視頻云開發(fā)的IoT設(shè)備端上的實(shí)時通...
摘要:安裝完成后,在的左下角選擇創(chuàng)建項目,具體操作如下圖所示項目創(chuàng)建頁面會出現(xiàn)很多模板庫,如果只有兩個或者沒有模版,可以嘗試點(diǎn)擊左下角的刷新模板信息按鈕。 目錄 前言 正文 一、IoT Pi 開發(fā)板介紹 二、開發(fā)實(shí)戰(zhàn) 1. 連接設(shè)備 2. 搭建開發(fā)環(huán)境 3. 開始編碼 4. 編譯打包 5. 安裝應(yīng)...
閱讀 3166·2023-04-25 18:22
閱讀 2410·2021-11-17 09:33
閱讀 3330·2021-10-11 10:59
閱讀 3247·2021-09-22 15:50
閱讀 2825·2021-09-10 10:50
閱讀 869·2019-08-30 15:53
閱讀 456·2019-08-29 11:21
閱讀 2925·2019-08-26 13:58