前段时间我发布了Edge X Foundry的介绍,今天我就写一下如何初步配置这个框架
我们以Windows10 1803操作系统版本进行演示所以要的组件如下:
1.Java SDK 1.8版本,因为Edge X Foundry就是在这个版本上开发的,是兼容最好的,如何配置不再赘述
2.MongoDB,这是与框架搭配最好的数据库,如何配置可见我的另一篇文档
3.GitHub,版本管理工具,因为我们的框架要从GitHub上下载下来
4.开发工具IDE:Eclipse,这个就不用我介绍了,嘿嘿
5.Maven,这是一个项目管理工具,配置简单,我们各种搭建成框架的微服务就是在依托在Maven库里运行,推荐一个文章,介绍amaven与Eclipse的配置
首先,我们要初始化我们的Mongo 数据库
1.将数据库配置脚本从GitHub clone到本地
我们找到"init_shell.bat",右键编辑,用mongo.exe的正确路径覆盖掉默认的路径,别的不要动,然后运行
如果出现这样的情况然后退出掉,就说明我们构造好了数据库,接下来我们运行数据库,开启指令我们用官方提供的"startdb.bat"文件,但是注意呀,我们也要编辑一下文件内的"mongo.exe"路径和指向数据库所存放文件的路径(默认c:\users\Public\mongodb\db,随你喜欢自己填就可以),双击执行。
数据库配置好之后我们要将项目导入到IDE中,我们先把core-domain这个微服务clone到本地
在eclipse中使用导入->Maven下的Existing Maven Projects->填好项目路径
在导入之前我想说的是,我们在导入后要安装配置文件,像maven的依赖,这就需要连接maven仓库,我们要把默认的仓库路径改为国内阿里云才不会下载太慢浪费时间
找到maven所在位置的setting.xml文件,修改如下部分代码:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
准备好这些,就可以导入微服务项目了,导入成功后,右击项目名->Run As->Maven Install
只要出现这个提示,就是打包到Maven成功了,证明这个项目是没有问题的,一般情况下我们可以运行了。
右击项目->Run As->Java Application,选择使用EdgeXSupportLoggingApplication运行
这个项目是不可以运行的,因为没有程序入口,这只是作为一个配套的maven服务存在,而能够运行的项目我会在后面做介绍
其实,我跟愿意使用PowerShell进行项目的启动。
我们在项目文件内启动PowerShell,执行mvn clean install
这样也可以将项目部署到maven里,而且能够把项目打包成一个jar可执行文件
Build 成功,接下来我们找到项目文件的target文件夹,运行PowerShell
用java -jar xxxxxx.jar就可以运行打包的jar项目了。因为core-domain不是可执行的项目所以无法启动
接下来我们依次获取并使用Maven install命令启动以下所有框架微服务项目:
core-domain (已部署,Edge X Foundry核心微服务域对象库)
core-test(Edge X Foundry微服务测试对象库)
core-exception(EdgeX Foundry核心微服务异常对象库)
support-domain(Edge X Foundry库 支持微服务域对象)
support-logging-client(用于调用Support Logging微服务的客户端库)
core-metadata-client(用于调用核心元数据微服务的客户端库)
core-data-client(用于调用Core Data微服务的客户端库)
support-notifications-client(用于调用支持通知和警报微服务的客户端库)
core-command-client(用于调用Core Command微服务的客户端库)
support-logging
(为其他微服务提供REST API的日志记录服务微服务,以添加/查询/删除日志记录请求。支持持久性的两个选项 - file或mongodb - 可通过属性文件或远程服务进行配置)
support-notifications
(警报和通知服务 - 当需要通过节点上的另一个微服务通知人或其他系统发现节点上发现的某些内容时,警报和通知将提供设施来传递该信息。其他服务可能需要广播的警报和通知的示例包括在特定参数(通常由规则引擎服务检测到)或系统/服务故障(通常由系统管理服务检测到)之外检测到的传感器数据)
core-metadata
(元数据微服务 - 包括设备/传感器元数据数据库和API以将数据库公开给其他服务。特别是,设备配置服务将通过该服务存储和管理设备元数据。该服务还可以保存和管理网关上其他服务使用的其他配置元数据 - 例如清理计划,硬件配置(Wi-Fi连接信息,MQTT队列等)。非设备元数据可能需要保存在另一个数据库中和/或由另一个服务管理 - 取决于实现。)
core-data
(核心数据服务包括设备/传感器收集的数据数据库和API以将数据库公开给其他服务以及北向集成。数据库安全时,直接访问数据库仅限于核心数据服务API。还提供了REST API来创建/注册新设备)
core-command
(Command Service(命令服务) - 通过管理设备服务触发其他服务的触发器,以触发设备/传感器的操作 该服务提供了一个API来获取可以为所有设备或单个设备发布的命令列表。命令分为每个设备的组:Gets和Puts。获取命令发送到设备/传感器获取设备上特定属性的当前值(如恒温器传感器提供的当前温度,或类似灯的开/关状态)。Put命令发布到设备/传感器,用于更改设备或其某个属性的当前状态或状态(例如设置电机的转速或设置调光器的亮度))
device-sdk
device-virtual
(虚拟设备服务2-虚拟设备服务2可以模拟不同类型的设备,以生成事件和读取到核心数据微服务。此外,用户可以通过命令和控制微服务发送命令并获得响应。在执行功能测试或性能测试时没有任何实际设备,这很有用。此版本的虚拟设备服务是基于设备服务SDK实现的。)
如果有启动失败的情况:
请检查您是否已将Eclipse环境配置为指向开发计算机上的可用JDK
请检查您是否先建立/安装了任何相关库或微服务项目
检查你的环境中是否安装了Maven插件
然后,我们开始启动可执行的微服务项目,可以在IDE里运行,也可以使用jar包的形式
1.开启core-metadata,并且出现"This is the Core metadata Micro Service."
2.开启core-data,并且出现"This is the Core Data Micro Service."
3.开启core-command,并且出现"This is the Core Command Micro Service."
4.编辑device-virtual的application.properties,并更改service.name和service.host名称以匹配你的电脑名称。在下面的例子中,PC的名称是Test-PC
#default device service settings
service.name=Test-PC
service.host=localhost
然后启动,注意,device-virtual这个项目打包成jar文件会出现空指针的错误,但是在IDE中运行就不会报错,所以建议大家这个块微服务直接在IDE中运行就好了。
6.通过打开浏览器并转到localhost:48080/api/v1/event/count,检查是否正在将事件/读取数据发送到core-data,并且点数会随着刷新而不断上升~
做到这里就说明我们的框架成功的搭建起来了,完结撒花~~~~
如果各位朋友有什么意见,建议,指正,欢迎留言,一起交流
更多有关Edge X Foundry的内容请点击https://blog.csdn.net/winfanchen/article/category/7702798