摘要: 本节类似图书里的前言,旨在说明这一系列文章的写作目的、目标读者等内容。 写作目的 本系列的主要目的是总结近期对edgex的学习和探索,谢谢在edgex上扩展的思路,希望能帮到同样在使用edgex的同学。 注: 参考本系列的前提: 已经对edgex有所了解,并能够启动edgex的核心组件,如consu 阅读全文
posted @ 2022-05-29 11:12 littlemujiang 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 很多时候,我们不能基于go去开发与edgex整合或联动的application service。 比如需要调用算法模型对数据进行计算,那用python编写application service更合适些。 这样便不能使用edgex SDK提供的messagebus了。好在edgex默认使用了redis 阅读全文
posted @ 2022-05-29 11:10 littlemujiang 阅读(105) 评论(0) 推荐(0) 编辑
摘要: edgex没有提供官方的application service,因为每个用户对数据的应用场景都是不同的。因此提供了一些demo工程,放在了edgex-examples内。 比较典型的是cloud-export-mqtt这个示例。它完成了对数据格式的转换,并通过MQTT协议发送到云端。 消息处理总线( 阅读全文
posted @ 2022-05-29 11:09 littlemujiang 阅读(267) 评论(0) 推荐(0) 编辑
摘要: edgex只提供了一部分的设备协议的适配,包括:device-camera、device-snmp、device-mqtt、device-modbus、device-gpio、device-coap、device-uart、device-grove。 那实际使用中一定会需要适配其他协议,如接入纯TC 阅读全文
posted @ 2022-05-29 11:08 littlemujiang 阅读(418) 评论(0) 推荐(0) 编辑
摘要: edgex的SDK和代码框架中,提供了一些基础能力,如从配置文件读取配置,使用service client调用其他服务,构建消息pipeline等。 配置读取 edgex的配置文件使用toml的格式 通常放在和main.go同级的res包下面 可以通过目录来分割不同的profile或者运行环境。在启 阅读全文
posted @ 2022-05-29 11:04 littlemujiang 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 7. 工程化 工程化的一项主要内容就是通过暴露REST API来管理ActorSystem内的actor。这里仅提供一种思路。 由于我们的服务通常是基于spring boot开发,打成jar包运行在服务器上。因此主要需要解决如何和spring boot整合的问题。 在实践过程中,我们发现,创建act 阅读全文
posted @ 2021-09-24 14:15 littlemujiang 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 6. 集群 在前面,我们实现了单实例的AkkaSystem,也实现了actor的并行计算。现在我们做成分布式的/集群化的AkkaSystem。以实现最终的目标。 相关概念 在实现集群前,先介绍几个概念。 node:集群的成员,分布式系统中的节点 seed nodes:种子节点(列表),从命名可以看出 阅读全文
posted @ 2021-09-24 14:14 littlemujiang 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 5. 路由消息 之前的例子中我们创建和使用的都是单个actor,而一个actor同时只能处理一条消息,这并没有发挥出akka并行计算的优势,我们希望能并行地去处理消息,就像kafka的consumer那样。这就需要使用到akka中的路由了。 路由,和常规理解的一样,当消息到达后,可以按一定的策略,把 阅读全文
posted @ 2021-09-24 14:13 littlemujiang 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 4. Actor间的交互与停止 Actor间的交互 在实际场景中,我们需要很多类型的actor协助来完成一项任务或功能。这就涉及actor建的交互。actor最基本也是最常用的方式就是actorRef.tell(message)。 这个方法是异步的,akka非阻塞的优势也正是通过这一点体现出来的。 阅读全文
posted @ 2021-09-24 14:12 littlemujiang 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 3. Actor进阶:创建带参数的actor和发送复杂的消息类型 上一篇实现了actor的创建,但是这个actor并不能满足我们生产中的要求。主要有以下2点: 构建actor类时,需要带参数或配置 消息不会是String这种基本类型,会是一个自定义的类 针对上面的问题,我们扩展之前的HelloWor 阅读全文
posted @ 2021-09-24 14:11 littlemujiang 阅读(299) 评论(0) 推荐(0) 编辑