尝试目标4
现在序列化服务已经运行,可以添加模拟传感器和MQTT代理。模拟传感器的代码位于step4/services/sensor,代理程序代码位于step4/services/broker。
新的挑战是将这些添加到fuge的yml配置文件中并运行系统。完成后需要通过fuge终端将微服务、influx数据库重启,会发现数据流通过从传感器到达前端界面。
目标4实现步骤
- 文件夹 step5/fuge 包含更新后的fuge配置
-
启动fuge
fuge shell fuge/compose-dev.yml
-
启动所有服务
start all
- 打开 http://localhost:10001 查看数据点
- 传感器数据开始通过代理送到序列化服务,在前端页面上展示
尝试目标5
距离完成最终系统面临的挑战是接入执行服务。执行服务程序在step5/services/actuator。
执行服务将通过MQTT代理发送一条偏移消息到传感器。要实现此功能,需要和之前一样,往fuge的配置文件 compose-dev.yml
中添加相关条目。
注意: 前端页面上的输入框和按钮提供向发送/set
请求的功能
当配置完成后,重启系统服务并刷新浏览器页面。能够看到和之前类似的图表,但在发送偏移消息后图立即产生变化。
目标5实现步骤
- 文件夹 step6/fuge 包含更新后的fuge配置
-
使用命令启动fuge
fuge shell fuge/compose-dev.yml
-
在终端执行启动系统
start all
- 在浏览器打开 http://localhost:10001查看数据点
- 源源不断来的感器数据通过代理到序列化服务,在前端页面上展示,
- 在顶部输入框输入数字(如1000),点击按钮
- 能看到图表中产生变化
尝试目标6
Fuge自动监控服务代码状态,一旦发现更新,将热重启相关服务。按步执行下面操作:
- 首先,修复influx数据库的提示信息: 编辑step6/fuge/fuge-config.js文件设置tail为false
- 重启fuge控制台并启动所有服务
-
接下来查看序列化服务运行情况
tail serializer
- 使用
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 - 打开 step6/services/serializer/serializer.js文件,添加调试输出
提示 如果对node.js不熟悉,可以使用 console.log('hello')
将信息发送到控制台
目标6解决步骤
- 更新 step7/fuge/fuge-config.js文件,设置tail为false
- 在 step7/services/serializer/serializer.js文件中添加额外调试
- 在 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解决步骤
-
在fuge目录下执行
docker-compose
启动命令:Docker-compose up
- 打开浏览器中输入http://<docker-machine-ip>:10001,检查是否正常
如果使用docker ps
命令,可以看到构建的系统镜像作为容器正在运行。
截止目前,祝贺您!已经成功使用docker容器构建出一个简单的IoT微服务。
本系列文章:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。