【开源好物】实现多规约的物联网网关IOTGate

时间:2024-03-18 11:29:47

进行物联网开发的同学们应该会了解,为了保持与大量物理设备之间的长连接,作为master与物理设备之间的通讯中转站,减轻master的压力,同时做到master集群的负载均衡,网关的作用是非常大的,尤其是高并发状态下。今天为大家介绍的这款入选 Gitee GVP 的开源项目就是针对这种情况研发,一起来看看吧。

项目名称:IOTGate

项目作者:於之

开源许可协议:GPL-2.0

项目地址:https://gitee.com/willbeahero/IOTGate

 

项目简介

【开源好物】实现多规约的物联网网关IOTGate

IOTGate是基于netty实现的支持多规约物联网设备同时接入的一个“物联网智能网关程序”。

 

项目功能架构图

【开源好物】实现多规约的物联网网关IOTGate

 

 

优势和缺点

优点

  • 部署灵活:IOTGate既可以单节点部署,又可以多节点集群部署,因此可以根据接入的终端数量灵活决定需要部署IOTGate的节点数量!
  • 多规约:目前IOTGate应该是开源社区里面第一个实现多规约支持的物联网网关程序了,我这里所说的规约,不是tcp和upd,而是规定了各个物理设备所传输数据的格式的规约,如果不清楚的建议百度一下。至于如何实现多规约配置,后续教程会详细说明
  • 并发能力不俗:由于IOTGate基于netty开发,可谓站在巨人肩膀上了,使用netty作为底层通讯组建的项目太多了,比较出名的如:RocketMQ,DUBBO等,其消息处理能力都很厉害,虽然自己比不上如斯大牛,但用自己笔记本测试了一下,并发能力能达到6000+。

缺点

  • 其对运行内存要求比较高点,8000并发访问时,建议内存分配1G起步,512M的话,我看了下jvm,fullgc会比较频繁!

 

命令行参数说明

【开源好物】实现多规约的物联网网关IOTGate

 

如何启动

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

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

【开源好物】实现多规约的物联网网关IOTGate【开源好物】实现多规约的物联网网关IOTGate

如果你对项目更多的部署方式和详细信息感兴趣的话,那就点击后面的链接,前往项目主页看看吧:https://gitee.com/willbeahero/IOTGate