扩展 EdgeX Foundry 混合开发环境

本文详细介绍了如何构建一个扩展的EdgeX Foundry混合开发环境,利用Docker Swarm的跨主机网络和Eclipse的远程调试功能,以提高开发效率。通过这种方式,开发者可以在本地Eclipse中专注于单个服务的开发,同时连接运行在Docker容器中的EdgeX Foundry集群,简化了IP地址的更改,并提供了便捷的调试和热部署能力。
摘要由CSDN通过智能技术生成

构建混合开发环境的原因

上文中,我们介绍了 EdgeX Foundry 的背景和概况;在本文中,我们会介绍实现更高效率混合开发环境的一种方法。

EdgeX Foundry 的核心工程数目超过 11 个,这还不包括每个工程对应的 client 和 domain 等依赖工程。而绝大多数情况下,我们实际要开发是其北侧端的 export 服务和南侧端的 device 服务。如果把 EdgeX Foundry 全部代码放入本地的 Eclipse IDE 中,不仅配置复杂,而且对于资源有限的笔记本来说,启动 EdgeX Foundry 全部核心工程,所产生的卡顿现象将影响开发效率。

在 EdgeX Foundry 的官方文档中有提示建议采用混合开发模式:一部分核心工程运行在其他宿主机上,将开发所针对的单个工程运行在 Eclipse 中。不过如果用这种方法,需要在项目工程中更改几十处的 IP 地址,对于 IP 经常变化的环境中开发来说非常不方便。

Edgex Foundry 官方混合开发环境文档参考:

https://wiki.edgexfoundry.org/display/FA/Get+EdgeX+Foundry±+Developers

这里,我们介绍一种扩展的 EdgeX Foundry 混合开发环境,它是基于 Docker Swarm、 Eclipse 的远程调试、devtools 插件来实现的:

  • Docker Swarm 用于集群部署,其内置的跨主机网络可以连接两个不同宿主机上的container。
  • Eclipse 的远程调试,依赖 Spring Boot 的 devtools 热部署插件,该插件可以在修改代码的时候自动重新编译启动 Docker 容器中 Spring app 应用工程,所以项目不一定非要真是的跑在 Eclipse 中也能调试编写代码。

这种以 Docker container 和 Eclipse 远程调试的方式,不仅仅是为了扩展 EdgeX Foundry 开发环境。在任何以 jar 包启动并运行到 Docker 内的开发环境来说,这种方式可以解决如下问题:

  • Jar 包运行的 Java 程序读取本地文件的方式与 War 包方式不同,更与 Eclipse 中开发时不同,经常会有在 Eclipse 中写好的代码放到 Docker 中后,运行报错问题。
  • 更好地实时监控运行在 Docker 环境中的状态,有助于提前发现问题。

创建 Docker Swarm 的跨主机网络步骤

1. 下载操作系统对应版本的 docker-ce

ce指的是社区版本,社区版本已经足够使用,按官网安装即可。

2. 初始化 docker swarm

(1) 在 EdgeX Foundry 的宿主机上,执行如下命令:

docker swarm init

==>拷贝输出中的如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值