按步搭建簡單IoT微服務 1

2021-09-13 02:55:07 字數 2208 閱讀 6650

本文翻譯自nearform的微服務開發工作坊專案,**如下:

簡略翻譯,僅供參考。

node版本:node 4.x +

測試環境:win7, win10, osx, linux

注意:這是乙個初學者級別的研討會。希望你接觸過node.js模組和應用程式,並對docker及其原理有基本的了解,將回顧並利用這些基礎知識。本系列提供了一些簡單的嘗試環節,可幫助您快速掌握這些技術。

構建的目標應用程式是乙個感測資料圖表,可從實時展示虛擬感測器傳送的資料。應用可被分解為多個單獨的服務,每個服務都有明確的功能定義。原理如圖所示

乙個簡單的web應用程式,它使用jquery,rickshaw charts和websockets來實現,顯示將感測器發出的資料生成的實時圖表。應用程式包含乙個用於與其他微服務進行互動、獲取取資料的api。

乙個可以對感測器發出偏移操作指令的微服務

乙個模擬的溫度感測器,支援根據獲得的執行器偏移指令傳送資料

以順序處理對資料庫讀取和寫入操作的服務。使用websocket-stream實時更新web應用程式和生成的圖表。

為基於物聯網的裝置構建強大的訊息傳遞層。低耦合的方式連線執行器、序列化服務和感測器。

在容器中部署的資料庫,儲存著序列化服務需要處理的大量資料。

完成應用程式搭建後,可以看到如下樣式的圖表:

整個系統使用下面的元件庫或技術:

網頁圖表庫,

http web伺服器庫,

瀏覽器的web套接字和資料流實時通訊的模組。

將依賴模組打包成可供瀏覽器環境使用的工具。

微服務庫,

mqtt**,支援大量訊息,特別適用於物聯網。

時間序列資料庫,特別適用於時間敏感資料。

容器引擎。

開始前需要安裝node.js及其依賴庫,部署docker環境及獲取influxdb映象檔案,按下面的步驟安裝必要的元件:

安裝完node.js後,執行命令安裝fuge:

npm install -g fuge
注意在linux下,請在每步中將fuge-config.js檔案設定proxy: 'none'

安裝完docker toolbox後,執行命令:docker-machine start default

在終端執行:eval "$(docker-machine env default)".

windows下開啟cmd.exe輸入@for /f "tokens=*" %i in ('docker-machine.exe env') do @%i設定環境變數.詳細幫助檢視docker環境變數.

確認上述步驟完成:docker ps

在容器環境中使用influx資料庫 influx

獲取influx容器映象:

docker pull tutum/influxdb
獲取node.js映象:

docker pull node
一旦完成,就可以開始正式搭建微服務。

複製乙份程式**到本地1

:

git clone [email protected]:nearform/micro-services-tutorial-iot.git
在**檔案中安裝程式依賴的node模組2

:

cd micro-services-tutorial-iot

npm install

本系列文章:

windows下如果沒有安裝git命令,可以直接訪問。 ↩

node的庫可能訪問異常,需要科學上網或者使用國內映象,npm install cnpm -g --registry=之後使用cnpm代替下文中npm命令。 ↩

簡單微服務的搭建

consul.exe agent devconsul預設埠是8500,開啟localhost 8500就可以看到已經啟動了consul。應用註冊到consul,實現服務註冊發現及健康檢查。1.引用consul的nuget包,建立管道擴充套件,單例注入consulclient。擴充套件方法 健康檢查 ...

從0到1搭建ABP微服務 搭建授權服務

在authserver目錄中建立解決方案,不啟用https配置 在剛剛建立的空 asp.net core專案中安裝 net core ef core ids4 abp等官方元件。pm install package serilog.extensions.hosting version 3.0.0 p...

微服務之路1 搭建Vue開發環境

1.node.js 安裝webpack 需要有node.js 環境 2.npm node package manager,nodejs的包管理器,用於node外掛程式的安裝 解除安裝 管理以來等。2.webpack 是乙個前端資源載入 打包工具。它將根據模組的依賴關係進行靜態分析,然後將這些模組按照...