Migrated repository
Go to file
2024-05-26 14:11:02 +08:00
files 增加部门物联网协议的配置参数 2024-05-23 19:00:36 +08:00
src/main/java kernel模式增加登录心跳,完善IOTGate登录逻辑 2024-05-26 14:11:02 +08:00
.gitignore 增加部门物联网协议的配置参数 2024-05-23 19:00:36 +08:00
HaoXinProcessor.sh 脚本完善 2019-08-01 19:58:45 +08:00
iotGate.conf kernel模式增加登录心跳,完善IOTGate登录逻辑 2024-05-26 14:11:02 +08:00
LICENSE 更新开源协议--- 2020-04-11 09:59:35 +08:00
pom.xml update pom.xml. 2023-02-27 13:38:08 +00:00
README.md 增加部门物联网协议的配置参数 2024-05-23 19:00:36 +08:00

输入图片说明

GitHub项目地址源码优先更新码云仓库

https://github.com/BrianApple/IOTGate

温馨提示

本项目的使用有一定的门槛,需要使用人员具备一定的物联网应用层协议知识,比如大小端、长度域等等

IOTGate开源版基于GPL-2.0开源请自行阅读GPL-2.0并准守相关条款,企业用户建议优先获取企业版使用权限!)

演示地址http://113.31.103.53:8686/

用户名密码随意输入: 输入图片说明 如果跳转报错则重新在地址栏输入http://113.31.103.xx:8686/ 即可正常访问!服务器资源有限,请不要对网关在线压测,谢谢!! ** 👨‍💻👨‍💻👨‍💻服务器被被挖矿木马感染了,目前木马已经被干掉,万事为了珍惜我宝贵的服务器资源就暂时不提供演示版了 **

名词解释

通信规约:应用层通信协议,与有些同学说的的“通信协议”是一个意思

IOTGate开源版压测聚合报告

win10笔记本堆内存2g,线程数6k IOTGate开源版压测聚合报告

通过netty实现自定义协议物联网网关单机和集群版

window笔记本电脑本地测试单网关单前置节点每秒处理并发心跳8000+根据jmeter本地最新压测统计数据20W在线终端(长连接保持)内存占用量1G左右

心跳检测

单机版可以通过配置文件个性化配置规约的心跳周期集群版默认300秒

入口类:

Entrance.java

IOTGate操作指南--系列博客

於之博客: https://www.xianglong.work/tag/IOTGate%E6%99%BA%E8%83%BD%E7%BD%91%E5%85%B3

於之CSDN: https://blog.csdn.net/sinat_28771747/category_8788959.html

端口占用

  • kernel模式默认端口为10915 -k命令行参数开启
  • rpc通信10915 (集群模式下开启)

命令行参数说明

参数 是否必选 是否含参 含义
-n 网关编号
-c 启动集群模式
-z zookeeper集群地址
-m 前置ip地址(不含端口前置默认8888)
-k 开启kernel模式默认端口为10915
-f 配置文件"iotGate.conf"的本地全路径

如何启动

自行将项目打成jar包在linux下执行java -jar iotGate.jar -n 1 [args...] 默认前置端口为8888可自行源码中修改

  • 单机方式启动 :命令行参数使用“-m”指定前置服务地址
  • 集群方式启动:命令行参数“-c”开启zookeeper集群模式“-z”指定zookeeper集群的地址逗号分隔
  • 单机版网关不支持IOTGateConsole控制台动态维护因为IOTGateConsole的节点发现依赖于zookeeper,集群版网关无论节点多少依然可以通过IOTGateConsole管理

自定义网关头结构与注意事项

网关报头,是网关与前置通信时,作为网关登录和传输真实报文时携带网关自身和终端响应参数的报文,报文结构是自己定义,前置按照定义好的报文格式获取数据并做相应处理。 网关头结构如下:

报文属性 字节数 含义
AB 1byte 报文头
len 4byte 长度域真实报文长度包含“68”“16”
type 1byte 报头类型
protocolType 1byte 协议类型左侧起第一个bit为0 表示IPV4, 1表示IPV6 剩余7个bit表示规约类型编号
gateNum 1byte 网关编号
00*12 12byte 如果ip格式为IPV4则当前为12字节0反之当前得12个byte+后续得4byte存放IPV6的值存放顺序从左至右依次
clientIP 4byte 终端的IP地址ip地址的每个段位占一个字节不含符号和端口号
port 2byte 终端对应的端口号
count 4byte 终端与网关建立连接时对应的连接序号1-10000循环

网关发送需要向前置发送登录报文,将自己注册到前置服务中,报文说明如下:

    1. 登录时长度为0有真实报文时长度域为整个真实报文长度值
    1. 登录时type = 03protocolType=15;count=1都为固定值发送真实报文时type=01,protocolType=00;count=终端与网关的连接序号
    1. 前置发现报头长度为0 且type = 03; protocolType=15;就不会执行解析数据的方法,否则会继续解析真实报文

网关配置文件种默认支持的两种真实报文

*“真实报文”即终端与网关通信时传输数据的报文,规约不同则报文结构差异明显
  • 规约编号为“1”报文结构如下
报文属性 字节数 含义
68 1byte 报头
len 2byte 长度域 "传输帧中除起始字符68和结束字符16之外的帧字节总数包含长度域本身字节数"
data n byte 报文内容
16 1byte 报尾
  • 规约编号为“2”报文结构如下
报文属性 字节数 含义
len 4byte 长度域值为data的字节数不包含自身字节数
data n byte 报文内容

版本

  • IOTGate-v1.0 版本为集群版网关程序通过命令行参数动态配置网关为单节点或集群单节点不依赖zookeeper集群 网关与前置通讯时默认轮询方式负载均衡

  • IOTGate-v2.0.1.release IOTGate第一个正式稳定版本可用于生产环境直接运行 !

  • IOTGate-v2.0.2.release 解决了大家反应的一些bug优化了内存泄漏异常单机版本增加了配置单个规约心跳的配置选项使得不同规约心跳的管理更加灵活

  • IOTGate-v2.0.3 IOTGate第一个正式发行版可执行jar包下载地址 https://gitee.com/willbeahero/IOTGate/attach_files/454348/download 前置网关演示demo下载 https://gitee.com/willbeahero/IOTGate/attach_files/454354/download

  • master 基本功能开发完成已经支持多规约本地配置以及IOTGateConsole远程开启/关闭/新增/删除网关多规约服务功能。后续master会继续扩展相关功能

  • IOTGate-v3.x 规划中,增加集群版能力,简化部署方式

多规约支持

modbus TCP

报文结构:modbusTCP.png 配置信息1,1,-1,4,2,0,0,9813,60

IEC 104

配置信息2,1,-1,1,1,0,0,9814,60

DLT 645

配置信息3,0,-1,9,1,0,2,9815,60

IOTGate功能架构图

IOTGate开源版功能架构图

GATE CLUSTER 结构图

集群版IOTGate架构图中GATE CLIENT项目名称“IOTGateConsole”项目地址https://gitee.com/willbeahero/IOTGateConsole 是一个web工程用户登录之后可以查看当前GATE CLUSTER的运行状态监控并可执行网关重启、关闭、启动网关多规约支持策略等操作

IOTGateConsole 规约维护 更多关于IOTGateConsole的说明请到博客中查看

计划新增功能(企业版已存在,根据企业版的应用情况回馈至开源社区)

  • 单机规约心跳周期配置(已完成)
  • 数据加密
  • 启动类重构 (已完成)

IOTGate最新功能

kernel服务模式

IOTGate最新支持与master节点通信“kernel”模式下图中红色实现框部分为normal部署模式黑色虚线框部分为最新支持的kernel模式即master节点和所有的感知终端统一作为 与IOTGate服务网络通信的客户端服务 kernel服务模式

关于大家捐赠本项目的资金用途问题说明

  • 首先感谢大家对本项目一如既往的支持IOTGate近期已经有朋友捐赠本项目各位朋友捐赠到本项目的资金如果后面足够购买云服务器的时候我会用来购买一个云服务器用于部署本项目的一个演示版本这样子也更方便大家特此说明

补充一点说明

  • 项目相关文档我会全部写在我自己的博客里面,请大家参阅!谢谢大家的支持!!欢迎大家提供真实的使用案例

部分已知用户

排名先后按联系作者时间顺序无特殊含义(欢迎其他使用该项目的优秀用户联系作者将贵公司名称加入本页):

  • 👍 烟台华崟科技有限公司

  • 👍 深圳风扇屏技术有限公司

  • 👍 杭州物新驱动科技有限公司

  • 👍 杭州数仓网络科技有限公司 http://www.datanode.cn/

  • 👍 车浴美汽车服务有限公司 (官方微信公众号: 车浴美)

HXAPIGate零侵入式API网关

HXAPIGate是一款基于Netty+Shiro开发的一款高性能零侵入式API网关被代理微服务不需要任何添加代码或注解真正的零侵入即可实现分布式特性适用于REST微服务的API资源授权管理等。项目地址 https://gitee.com/willbeahero/HXAPIGate

浩欣泛在物联网云平台【简称:浩欣物联平台】 软著登记号2020SR0374701 官网www.uiotp.com

演示账号

用户名 guest001 密码 123456

简介

浩欣物联平台采用分布式微服务架构、分布式消息队列、分布式缓存、时序数据存储、流计算等技术实现的支持物联设备遥测数据采集、告警数据预警等功能的泛行业IOT物联网平台可作为物联网上层应用的物联数据中台 负责与各种不同规约类型的物联设备直接交互并为上层应用提供统一的接口和响应数据格式能极大降低物联网研发的成本提高物联网研发效率。浩欣物联平台设备侧采用IOTGate企业版作为物联感知设备网络入口。浩欣物联平台受著作权保护有兴趣的朋友可发邮件至 yangcheng068@foxmail.com