https://github.com/BrianApple/IOTGate
本项目的使用有一定的门槛,需要使用人员具备一定的物联网应用层协议知识,比如大小端、长度域等等
演示地址http://113.31.103.53:8686/
用户名密码随意输入:
如果跳转报错则重新在地址栏输入http://113.31.103.xx:8686/ 即可正常访问!服务器资源有限,请不要对网关在线压测,谢谢!!
** 👨💻👨💻👨💻服务器被被挖矿木马感染了,目前木马已经被干掉,万事为了珍惜我宝贵的服务器资源就暂时不提供演示版了 **
通信规约:应用层通信协议,与有些同学说的的“通信协议”是一个意思
win10笔记本,堆内存2g,线程数6k
window笔记本电脑本地测试:单网关、单前置节点,每秒处理并发心跳8000+(根据jmeter本地最新压测统计数据),20W在线终端(长连接保持)内存占用量1G左右
单机版可以通过配置文件个性化配置规约的心跳周期,集群版默认300秒
Entrance.java
於之博客: 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
参数 | 是否必选 | 是否含参 | 含义 |
---|---|---|---|
-n | 是 | 是 | 网关编号 |
-c | 否 | 否 | 启动集群模式 |
-z | 否 | 是 | zookeeper集群地址 |
-m | 否 | 是 | 前置ip地址(不含端口,前置默认8888) |
-k | 否 | 否 | 开启kernel模式,默认端口为10915 |
-f | 是 | 是 | 配置文件"iotGate.conf"的本地全路径 |
自行将项目打成jar包,在linux下,执行java -jar iotGate.jar -n 1 [args...] 默认前置端口为8888,可自行源码中修改
网关报头,是网关与前置通信时,作为网关登录和传输真实报文时携带网关自身和终端响应参数的报文,报文结构是自己定义,前置按照定义好的报文格式获取数据并做相应处理。 网关头结构如下:
报文属性 | 字节数 | 含义 |
---|---|---|
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循环) |
网关发送需要向前置发送登录报文,将自己注册到前置服务中,报文说明如下:
*“真实报文”即终端与网关通信时传输数据的报文,规约不同则报文结构差异明显
报文属性 | 字节数 | 含义 |
---|---|---|
68 | 1byte | 报头 |
len | 2byte | 长度域 "传输帧中除起始字符68和结束字符16之外的帧字节总数,包含长度域本身字节数" |
data | n byte | 报文内容 |
16 | 1byte | 报尾 |
报文属性 | 字节数 | 含义 |
---|---|---|
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 规划中,增加集群版能力,简化部署方式
物联网虽然火起来,但目前业内还没有比较统一的通讯规约,MQTT是目前业界使用比较广泛的物联网通讯协议了,我看了下阿里最近弄出来的物联网平台其主要也是支持MQTT物联网设备的接入,但他毕竟不是唯一的通讯规约,光我自己知道的通讯都有好几种了,而且每一种规约的报文格式都各不相同,因此,所谓多规约支持,也不可能做到所有物联网规约全支持,我目前的想法是,通过多规约得基础功能和高级功能可以将比较流行物联网规约都能够支持! 那么IOTGate如何配置实现多规约支持呢? IOTGate操作指南
注:图中GATE CLIENT(项目名称“IOTGateConsole”,项目地址:https://gitee.com/willbeahero/IOTGateConsole ) 是一个web工程,用户登录之后可以查看当前GATE CLUSTER的运行状态监控,并可执行网关重启、关闭、启动,网关多规约支持策略等操作:
更多关于IOTGateConsole的说明请到博客中查看
IOTGate最新支持与master节点通信“kernel”模式,下图中,红色实现框部分为normal部署模式,黑色虚线框部分为最新支持的kernel模式,即master节点和所有的感知终端统一作为
与IOTGate服务网络通信的客户端服务
烟台华崟科技有限公司
深圳风扇屏技术有限公司
杭州物新驱动科技有限公司
杭州数仓网络科技有限公司 (http://www.datanode.cn/ )
车浴美汽车服务有限公司 (官方微信公众号: 车浴美)
HXAPIGate是一款基于Netty+Shiro开发的一款高性能零侵入式API网关(被代理微服务不需要任何添加代码或注解,真正的零侵入即可实现分布式特性),适用于REST微服务的API资源授权管理等。项目地址: https://gitee.com/willbeahero/HXAPIGate
用户名 guest001 密码 123456
浩欣物联平台采用分布式微服务架构、分布式消息队列、分布式缓存、时序数据存储、流计算等技术实现的支持物联设备遥测数据采集、告警数据预警等功能的泛行业IOT物联网平台,可作为物联网上层应用的物联数据中台, 负责与各种不同规约类型的物联设备直接交互,并为上层应用提供统一的接口和响应数据格式能极大降低物联网研发的成本提高物联网研发效率。浩欣物联平台设备侧采用IOTGate企业版作为物联感知设备网络入口。浩欣物联平台受著作权保护,有兴趣的朋友可发邮件至 yangcheng068@foxmail.com
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型