這章節咱們將爲系統創建一個簡單的前端界面。首先安裝一些依賴環境並運行起來,按照下面的步驟開始:前端
若是尚未準備好,能夠先在獲取的代碼倉庫 micro-services-tutorial-iot 下運行npm install
命令,完成以後運行以下命令:node
cd frontend/api
node index.js
打開瀏覽器(推薦使用chrome、firefox),輸入地址http://localhost:10001. 能夠看到一張圖表,簡單吧。git
接下來將開始創建數據庫。這步將藉助於Docker,若是沒有鏡像,可使用一行命令獲取:github
docker pull tutum/influxdb
如何運行influxdb容器能夠參考文檔: https://hub.docker.com/r/tutu...chrome
難點是運行起influxDB容器,一旦成功運行,能夠在瀏覽器中查看influx的網頁界面。docker
使用以下命令啓動容器shell
docker run -d -p 8083:8083 -p 8086:8086 tutum/influxdb
使用命令獲取容器中的IP地址數據庫
docker-machine ip default
http://<dockermachineip>:8083/
打開influx控制檯-p
參數用於將容器的808三、8086端口暴露給宿主機;npm
-d
參數告知docker運行後臺模式json
當在本地運行docker容器時,特別留意每一個單獨的虛擬機使用各自的IP地址(尤爲是Mac系統、Windows系統)
使用docker kill
命令能夠隨時中止容器
目前數據庫已經運行,接下來將建立微服務用於讀寫數據庫。已經編寫好了序列化服務代碼,位於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網頁界面輸入下列查詢語句,能夠檢查數據點被真實寫入influx中
use temperature; select * from temperature;
注意 序列化程序是一種seneca1微服務。Seneca做爲獨立層可實現多種傳輸機制,包括TCP, HTTP, RabbitMQ, Redis, NATS等。在本教程中,使用Json格式數據經過HTTP傳輸機制。
下一步是鏈接前端和序列化服務,實如今前端圖表中讀取傳感器發送的數據。
序列化服務對應的更新後前端程序位於 step2/frontend.
面臨的挑戰是啓動Influx數據庫、前端程序、序列化服務。須要編寫腳本實現啓動前端服務和序列化服務。
當啓動這兩個服務,使用testWrite.sh腳本發送數據到influx數據庫後,就能夠在前端頁面查看。
注意 如檢查更新後的前端代碼,可發現以下環境變量
在打開前端前,須要設置上述變量。
如今系統只有3個模塊,但已經很難管理。在這步中,面臨的挑戰是讓系統經過Fuge運行。Fuge是一種微服務開發環境,幫助簡化應對本地進程和docker容器
在 step3/fuge 包含兩個文件:
docker compose
格式指定系統所用的進程等面臨的挑戰是使用fuge終端運行系統,能夠查看fuge相關文檔https://github.com/apparatus/...。 系統啓動費後,可使用腳本step3/services/serializer/testWrite.sh (windows下用testWrite.bat)檢查運行狀態。前端頁面圖表可直觀展現數據。
提示 必須先中止以前全部進程及容器
提示 確認使用 npm install -g fuge
命令安裝了fuge.
提示 可使用 fuge shell
開啓fuge終端
啓動fuge
fuge shell fuge/compose-dev.yml
啓動全部服務
start all
注意 Fuge用於關聯進程和dock 容器,使用以下機制:
本系列文章: