设备接入项目杂记
一个几年前的设备接入平台项目,本人参与不多,因为要准备一个类似项目,抽了两个小时重新走读了下核心代码,记录一些知识点备忘:
1、通信基础采用MINA框架:
MINA服务端主要流程:
a. IoAccept 监听来自网络的请求;
b. 当新的连接建立时,创建session,该session对应某个IP加端口;
c. 数据包收到时,会经过一系列的IoFilter,主要是数据包的解析,自定义的协议解析也可以写自定义的过滤器;
d. 经过过滤器解析后的数据包被IoHandler处理,自己的业务处理函数继承至IoHandler;
e. 发送消息时,从IoAccept中获取session,调用其write方法
MINA客户端主要流程:
a. 创建某个IOConnection对象,绑定IP和端口;
b. 连接成功后会新建一个session;
c. 数据包收到时,同样会经过一系列的IoFilter;
d. 最后由事先绑定的IoHander处理;
备注:MINA提供强大的过滤器组件,其中包括支持心跳机制;
2、接入服务器的双机热备,采用heartbeat组件,对外暴露虚拟IP;
3、服务器采用sigar组件,对本机的CPU利用率的数据进行采集,并统一上报给监控中心节点;
4、定时任务,包括链路断开后的重传,利用quartz组件实现;
5、消息的解析是定义在encode和decode中,其中decode的doDecode方法从缓冲区解析消息,和通常的做法一样,要注意的是一点,如果传输数据是16进制,那么要处理特殊字符(比如帧头、帧尾)的转义。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)