35°

分布式项目(一)iot-pt

前言

  目前很多项目都是些微服务,分布式,基本也都是基于spring cloud,dubbo实现的,关于spring cloud和dubbo网络上也有很多实用教程,但很少有基于项目开发的整套流程来写的,因为项目原因,突然有点小灵感,所以想从项目设计,开发,分布式部署整个流程来记录一个简单的分布式项目大概是个什么样子的。笔者也处于学习提高自己的阶段,所以有写的不好的和不对的地方,欢迎看官指正。

项目介绍

  名称:iot-pt

  说明:此项目是一个关于物联网的项目,简单的说就是物理设备通过某种协议上传数据到服务器,服务器对数据进行分类、存储,管理后台通过某些指令可以控制远程的物理设备。

  业务概念设计

  概念说明

  • 产品:产品是一个业务概念,是一类物理设备的集合,定义了一类物理设备是什么,比如小米6手机,单个小米6手机,我们可以叫我的手机或者我的移动设备,但是对于小米公司来说,小米6代表的是卖出的所有小米6手机,所以更愿意称之为小米6产品。

  • 设备:设备是一个具体的物理设备的抽象,它与具体存在的物理设备一一对应,定义了具体是物理设备是什么,归属于产品中。

  • 产品物模型:物模型是一类设备功能的抽象,它包含协议,属性,指令,事件,定义了物理设备能干什么。

    1. 协议:定义物理设备上传数据使用的是什么协议。

    2. 属性:定义了物理设备上传的那些数据,并有什么实际的业务含义。

    3. 指令:定义了物理设备能接受那些操作指令,并完成相应的操作。

    4. 事件:定义了物理设备能触发那些事件,设备异常,设备报警。

功能结构设计

  结构图

模型介绍

  Client:发数据的客户端,用来模型物理设备,包含了coap和mqtt,coap和mqtt是目前比较流行的物联网协议,这里不就具体的介绍协议了。

  Protocol Server:接收客户端发送的消息,并把消息推送到kafka。

  Mapping Server:消费Protocol Server发送到kafka的设备数据,对数据进行解码,映射到系统的设备和属性上,赋予数据业务意思。

  Monitor Server:消息Protocol Server发送的服务监控数据,消费Mapping Server发送的设备心跳数据,并把数据整理写入redis。

  Insert DB Server:持久化服务统称,消费Mapping Server发送的设备数据,并进行持久化。

  Real-time Data Server:消费Mapping Server发送的设备数据,基于web socket向管理平台推送设备实时数据。

  Web Manage:web管理服务,提供可视化产品,设备,产品物模型操作。

iot-pt项目结构就介绍到这里,剩下的咋们开始撸码,git:https://gitee.com/distant/iot-pt.git

本文由【lelinked】发布于开源中国,原文链接:https://my.oschina.net/u/2258281/blog/3039165

全部评论: 0

    我有话说: