物联网设备网关技术架构设计TCPGateway
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)TCP Gateway。 介绍
物联网设备网关技术架构设计(Session 管理、心跳管理、数据上行、数据下行)
说明
NioEventLoop 是 Netty 的 Reactor 线程,其角色:Boss Group:作为服务端 Acceptor 线程,用于 accept 客户端链接,并转发给 WorkerGroup 中的线程。Worker Group:作为 IO 线程,负责 IO 的读写,从 SocketChannel 中读取报文或向 SocketChannel 写入报文。Task Queue/Delay Task Queue:作为定时任务线程,执行定时任务,例如链路空闲检测和发送心跳消息等。
概要说明TcpServer :提供TCP连接服务TcpSessionManager: 你可以添加监听事件,用于监听TCP会话创建、销毁等LogSessionListener:一个日志监听器,它和tcpSessionManager关联,监听器必须事先 SessionListenerTcpSender:TCP发送者,用户向客户端发送消息通知、实现下行逻辑ServerConfig: TCP 的配置管理类TcpConnector: TCP 容器,用于管理服务和客户端的连接NotifyProxy: 发送通知到代理类
以上都是默认配置,你可以不修改,但是你可能需要换个TCP端口.TCP网关的网络结构
基于Netty构建TCP网关的长连接容器,作为网关接入层提供服务API请求调用。
客户端通过域名+端口访问TCP网关,域名不同的运营商对应不同的VIP,VIP发布在LVS上,LVS将请求转发给后端的HAProxy,再由HAProxy把请求转发给后端的Netty的IP+Port。
LVS转发给后端的HAProxy,请求经过LVS,但是响应是HAProxy直接反馈给客户端的,这也就是LVS的DR模式。
TCP网关执行时序图
其中步骤一至步骤九是指 Netty 服务端的创建时序,步骤十至步骤十三是 TCP 网关容器创建的时序。步骤一:创建 ServerBootstrap 实例,ServerBootstrap 是 Netty 服务端的启动辅助类。步骤二:设置并绑定 Reactor 线程池,EventLoopGroup 是 Netty 的 Reactor 线程池,EventLoop 负责所有注册到本线程的 Channel。步骤三:设置并绑定服务器 Channel,Netty Server 需要创建 NioServerSocketChannel 对象。步骤四:TCP 链接建立时创建 ChannelPipeline,ChannelPipeline 本质上是一个负责任的执行 ChannelHandler 的职责链。步骤五:添加并设置 ChannelHandler,ChannelHandler 串行的加入 ChannelPipeline 中。步骤六:绑定监听端口并启动服务端,将 NioServerSocketChannel 注册到 Selector 上。步骤七:Selector 轮训,由 EventLoop 负责调度和执行 Selector 轮询操作。步骤八:执行网络请求事件通知,轮询准备就绪的 Channel,由 EventLoop 执行 ChannelPipeline。步骤九:执行 Netty 系统和业务 ChannelHandler,依次调度并执行 ChannelPipeline 的 ChannelHandler。步骤十:通过 Proxy 代理调用后端服务,ChannelRead 事件过后,通过发射调度后端 Service。步骤十一:创建 Session,Session 与 Connection 是相互依赖的关系。步骤十二:创建 Connection,Connection 保存 ChannelHandlerContext。步骤十三:添加 SessionListener,SessionListener 监听 SessionCreate 和 SessionDestory 等事件。程序运行案例步骤
1.配置本地Host
Window 地址 // C:WindowsSystem32driversetchosts
添加 127.0.0.1 iot-open.icloud.com
2.启动Server
位置: com.ibyte.iot.test.server.TestTcpServer
2.启动Client
位置: com.ibyte.iot.test.client.TcpClient
更多内容:https://gitee.com/ibyte/icloud-tcp-gateway
人与人,一场缘时光,留不住昨天缘分,停不在初见感情,需要的是理解相处,需要的是默契陪伴,需要的是耐心。人生能相遇,已是不易心灵若相知,更要珍惜。人与人之间就是一种缘分,心与心之间就是一种交流,情
不管你多穷,也不要随意穿别人的旧衣服前几天在朋友圈看到一位朋友吐槽,说换季整理衣柜,挑出一大堆旧衣服,丢掉可惜,送人又不好意思。她妈妈感叹,如果是50年前,这些旧衣服能救好多人的急。其实,每个中年人,都在娃娃时代,穿
地球大气层正在变异?科学家发现奇怪的化学物质三氧化氢。日落之后,从太空中,沿着地球的边缘所看到的景象。NASA最近一些科学家在科学杂志上发文称,他们在地球大气层中发现了一种奇特的化合物。这种被称为三氧化氢(hydrotrio
飞行星际望远镜美国宇航局称其为未来十年的首要天文台。詹姆斯韦伯太空望远镜于2021年12月发射升空,将为了解宇宙的一些最大秘密提供新的见解。该望远镜由雷神情报与空间公司的地面控制系统操作,将观察
恒星的寿命有多长?简短的回答这取决于恒星的大小。图哈勃太空望远镜在鹰状星云中捕捉到了这张创世之柱的红外图像。可以看到正在形成的年轻恒星发出的光穿透了尘埃和气体云。(图片来源NASAESA和哈勃遗产团
南极出现奇怪绿雪事件背后富国受益,穷国遭殃?近几年,人们通过卫星观察到,在南极大陆一些地方出现了怪异的事件,原本应该是皑皑白雪和冰层,却出现红色的雪,后来又发现雪竟然变绿了。英国剑桥大学和英国南极调查局的生物学家经过研究才发
记忆包裹,一起守护那份最珍贵的记忆这是一个关乎爱关乎记忆关乎生命和尊严的公益项目。在我们周围,真切存在着这样的人群邻居的爷爷常常看着家人忙里忙外,话到嘴边却又忘记了他们的名字,只好低下头沉默许久隔壁曾经非常体面的婶
芳草天行为不可取因为工作关系,我20年时间跑遍了全球40多个国家,60多个港口,有名声在外的欧美现代化大都市也有地球仪上都找不到的非洲犄角旮旯,接触的外国人不算少数,有平易待人的西欧人也有偏见刻薄
荒木由美子马云的梦中情人,为了找到她,马云曾6次前往日本2017年,在一次公开演讲中,马云在演讲台上给听众们讲述了一段他的陈年往事。马云说,阿里巴巴能有现在的成就,和他的女神荒木由美子有着密不可分的联系。可奇怪的是,在马云成立阿里巴巴之
电力集中器HMIPOSIX标准UNIX平台Linux系统远动装置数据遥测终端一华世智能HS6204的软件特性系统预装基于nuvotonNUV970980的Linux操作系统,版本4。4。179,满足POSIX标准或类UNIX平台的应用程序针对系统特有的硬件
618换手机若预算不足,这5款千元神机,自己用或送长辈都合适当下正逢618年中大促,身边有不少朋友都开始了新一轮的手机换新,大家普遍将目光集中在了包括iPhone在内的高端旗舰手机上。考虑到旗舰手机配置更全面寿命更长,这也无可厚非,不过还有