3
本文翻译自nearform的微服务开发工作坊项目,网址如下:https://github.com/nearform/m...
文章介绍了实现IoT微服务相关模块,可以按照例子(已经提供代码)动手做一遍,对各个模块会有新的认识。当然在实际开发中,文中提到的组件均可根据实际替换,灵活运用。
简略翻译,仅供参考。

微服务开发

本系列文章将一步步指导使用node.js、fuge、docker、docker-compose搭建出微服务相关组件。

node版本: Node 4.x +

测试环境: Win7, Win10, OSX, Linux

注意: 这是一个初学者级别的研讨会。希望你接触过node.js模块和应用程序,并对docker及其原理有基本的了解,将回顾并利用这些基础知识。本系列提供了一些简单的尝试环节,可帮助您快速掌握这些技术。

应用

构建的目标应用程序是一个传感数据图表,可从实时展示虚拟传感器发送的数据。应用可被分解为多个单独的服务,每个服务都有明确的功能定义。原理如图所示
image

前端界面

一个简单的Web应用程序,它使用jQuery,Rickshaw charts和WebSockets来实现,显示将传感器发出的数据生成的实时图表。应用程序包含一个用于与其他微服务进行交互、获取取数据的API。

执行器

一个可以对传感器发出偏移操作指令的微服务

传感器

一个模拟的温度传感器,支持根据获得的执行器偏移指令发送数据

序列化服务

以顺序处理对数据库读取和写入操作的服务。使用websocket-stream实时更新Web应用程序和生成的图表。

代理

为基于物联网的设备构建强大的消息传递层。低耦合的方式连接执行器、序列化服务和传感器。

Influx

在容器中部署的数据库,存储着序列化服务需要处理的大量数据。

完成应用程序搭建后,可以看到如下样式的图表:

image

库及组件

整个系统使用下面的组件库或技术:

Rickshaw Charts

网页图表库,http://code.shutterstock.com/...

express

HTTP Web服务器库,http://expressjs.com/

websocket-stream

浏览器的web套接字和数据流实时通信的模块。https://www.npmjs.com/package...

browserify

将依赖模块打包成可供浏览器环境使用的工具。http://browserify.org/

Seneca

微服务库,http://senecajs.org/

Mosca / MQTT

MQTT代理,支持大量消息,特别适用于物联网。https://github.com/mcollina/m...

InfluxDB

时间序列数据库,特别适用于时间敏感数据。https://influxdb.com/

Fuge

微服务开发环境。https://github.com/apparatus/...

Docker

容器引擎。https://www.docker.com

准备工作

开始前需要安装node.js及其依赖库,部署docker环境及获取InfluxDB镜像文件,按下面的步骤安装必要的组件:

node.js

访问https://nodejs.org/,下载操作系统对应的nodejs程序。

fuge

安装完node.js后,运行命令安装fuge:

npm install -g fuge

注意 在linux下,请在每步中将fuge-config.js文件设置proxy: 'none'

cURL

Windows下并没有提供curl程序,如果用Windows,请在[https://curl.haxx.se/download...]()下载相应版本,设置好环境变量(在PATH中添加curl.exe所在的文件夹)。

Docker

访问https://www.docker.com/produc... 并根据操作系统选择下载最新稳定版本的docker toolbox。

安装完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 git@github.com:nearform/micro-services-tutorial-iot.git

在代码文件中安装程序依赖的node模块2:

cd micro-services-tutorial-iot
npm install

本系列文章:


  1. windows下如果没有安装git命令,可以直接访问https://github.com/nearform/m...
  2. node的库可能访问异常,需要科学上网或者使用国内镜像,npm install cnpm -g --registry=https://registry.npm.taobao.org之后使用cnpm代替下文中npm命令。

puyu
184 声望17 粉丝