尝试目标4

image

现在序列化服务已经运行,可以添加模拟传感器和MQTT代理。模拟传感器的代码位于step4/services/sensor,代理程序代码位于step4/services/broker。

新的挑战是将这些添加到fuge的yml配置文件中并运行系统。完成后需要通过fuge终端将微服务、influx数据库重启,会发现数据流通过从传感器到达前端界面。

目标4实现步骤

  1. 文件夹 step5/fuge 包含更新后的fuge配置
  2. 启动fuge

    fuge shell fuge/compose-dev.yml
  3. 启动所有服务

    start all
  4. 打开 http://localhost:10001 查看数据点
  5. 传感器数据开始通过代理送到序列化服务,在前端页面上展示

尝试目标5

image

距离完成最终系统面临的挑战是接入执行服务。执行服务程序在step5/services/actuator。

执行服务将通过MQTT代理发送一条偏移消息到传感器。要实现此功能,需要和之前一样,往fuge的配置文件 compose-dev.yml 中添加相关条目。

注意: 前端页面上的输入框和按钮提供向发送/set 请求的功能

当配置完成后,重启系统服务并刷新浏览器页面。能够看到和之前类似的图表,但在发送偏移消息后图立即产生变化。

目标5实现步骤

  1. 文件夹 step6/fuge 包含更新后的fuge配置
  2. 使用命令启动fuge

    fuge shell fuge/compose-dev.yml
  3. 在终端执行启动系统

    start all
  4. 在浏览器打开 http://localhost:10001查看数据点
  5. 源源不断来的感器数据通过代理到序列化服务,在前端页面上展示,
  6. 在顶部输入框输入数字(如1000),点击按钮
  7. 能看到图表中产生变化

尝试目标6

Fuge自动监控服务代码状态,一旦发现更新,将热重启相关服务。按步执行下面操作:

  1. 首先,修复influx数据库的提示信息: 编辑step6/fuge/fuge-config.js文件设置tail为false
  2. 重启fuge控制台并启动所有服务
  3. 接下来查看序列化服务运行情况

    tail serializer
  4. 使用ps 命令查看系统状态,fuge仅监控所有进程变化,只输出序列化服务情况to show the state of the system it should report that fuge is watching all processes for changes but only tailing the serializer service
  5. 打开 step6/services/serializer/serializer.js文件,添加调试输出

提示 如果对node.js不熟悉,可以使用 console.log('hello')将信息发送到控制台

目标6解决步骤

  1. 更新 step7/fuge/fuge-config.js文件,设置tail为false
  2. 在 step7/services/serializer/serializer.js文件中添加额外调试
  3. 在 step7/frontend/api/index.js文件中添加额外调试

尝试目标7

目标是在开发模式下运行微服务组件Fuge。只是需要使用兼容docker-compose格式的工具。Docker compose可运行一系列容器。如果使用容器方式部署并在本地构建检查系统情况, 通常建议使用开发模式运行容器,虽然会慢些。

以提供docker-compose格式的文件step7/fuge/docker-compose.yml,挑战是第一次使用docker-compose文件启动fuge系统。使用docker-compose命令完成这次尝试。关于docker-compose详细文档可以参考https://docs.docker.com/compose/

目标7解决步骤

  1. 在fuge目录下执行docker-compose启动命令:

    Docker-compose up
  2. 打开浏览器中输入http://<docker-machine-ip>:10001,检查是否正常

如果使用docker ps命令,可以看到构建的系统镜像作为容器正在运行。

截止目前,祝贺您!已经成功使用docker容器构建出一个简单的IoT微服务。


本系列文章:


puyu
184 声望17 粉丝