设备接入项目杂记

一个几年前的设备接入平台项目,本人参与不多,因为要准备一个类似项目,抽了两个小时重新走读了下核心代码,记录一些知识点备忘:

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进制,那么要处理特殊字符(比如帧头、帧尾)的转义。

原文地址:https://www.cnblogs.com/Fredric-2013/p/5800233.html