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