背景
IOTGate项目地址 前往IOTGate 在IOTGate最新版本中,最近新增了一个重要的新特性,那就是kernel模式,在此之前的版本中,网关与前置服务(规约解析务)基于nomer模式通信,即前置为TCP/IP服务端,而网关为TCP/IP客户端,下图为normal模式示意图:
在某些场景下,normal模式有一定的弊端,尤其是在网络比较复杂的情况下,由于在normal模式下前置master是服务端程序,因此必须要将前置master所在服务器开启相应通信端口供网关服务访问,在服务扩展性上,由于网关性能始终都会强于master,因此大多数情况master扩展的可能性会大大高于IOTGate服务,cluster模式下通过zk可以快速发现master节点服务并建立连接,但是由于采用的是无差别连接模式,导致cluster模式下IOTGate会连接到集群中的所有master节点,对于资源的合理分配和按需动态规划是不够的,综上,IOTGate增加了kernel模式。
kernel 模式
下图为kernel模式网络架构图,此模式下,IOTGate与典型的消息中间件更为相似,IOTGate作为纯粹的消息服务端,感知设备和master节点全部作为客户端服务接入IOTGate 该模式中,单节点的IOTGate为master和感知设备提供了同等扩展能力,即master节点可以根据实际需要动态扩展,而不依赖于任何第三方注册中心服务。
如何启用kernel模式
通过无参命令行启动参数k来开启kernel模式,固定服务端口:10915,服务部署使用该模式以前请注意防火墙放开对应端口。目前所有命令行参数说明如下:
kernel和normal模式关系图
目前IOTGate的kernel和normal模式无法共存
演示
- 启动网关
- 启动master
通过monimaster4kernel类启动kernel模式专用测试master 启动moniterminal服务,即可看到控制台输出经master转发并发送会设备客户端的报文
|