IoT-DC framework

a IoT data collector framework and power by springboot+netty+rabbitmq/kafka

一个基于 springboot+netty+rabbitmq 实现的 物联网设备(IoT) 数据接入的项目

src: https://github.com/Theembers/iot-dc

thanks for star! :) ⭐⭐⭐⭐⭐

the obsolete version (branch:s-0.1) will be not update yet (except bug fix), the master will be rebuild as new one. thanks follow!

旧版本以封版(分支s-0.1)不再更新(除了bug修改),master 分支将启用新的设计,敬请期待!

branch:s-0.1

🎉 new framework had be done! you can running with iot-example-me.theembers.iot.TestCollector to debug it.

🎉 新版本框架已基本完成!可以通过 iot-example-me.theembers.iot.TestCollector 运行调试。

IoT platform framework (IoT平台总体架构设计)

设备总体接入架构

about the new IoT-DC Framework (关于新版 IoT-DC Framework)

抽离了netty的实现逻辑,保留了基础框架

iot-framework-dc 模型

router 模型

processor-link 模型

/**
 * 执行
 * 如果 当前processor是头节点,调用 headIn ( 调用 beforeTransform & transForm)
 * 否则 (中间节点 或者 尾节点) 调用 receive(接收)
 * 最终 如果 是尾结点 则 调用 tailOut (调用 afterTransform) 并 退出循环
 * 到 //1 则 调用 buildSlotData (构建插槽)
 *
 * @param shadow
 * @param sourceData
 */
void run(Shadow shadow, SourceData sourceData) {
    Output output = null;
    SlotData slotData = null;
    Iterator<Processor> processors = this.link.iterator();
    while (processors.hasNext()) {
        Processor p = processors.next();
        if (p == getFirst()) {
            output = p.headIn(shadow, sourceData);
        } else {
            output = p.receive(shadow, slotData);
        }
        if (p == getLast()) {
            output = p.tailOut(shadow, output);
            return;
        }
        slotData = p.passOn(shadow, output); // 1
    }
}