• 设备接入项目杂记


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

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

  • 相关阅读:
    阅读文献的三大问题:坐不住,记不住,想不开
    C++之vector模板类
    C++之string类
    算法学习(1)枚举法求运算符
    二叉树(4)非递归法遍历二叉树
    二叉树(3):对二叉树数的操作
    Pascal's Triangle,Pascal's Triangle II
    Next Permutation
    Permutations,Permutations II,Combinations
    Majority Element,Majority Element II
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/5800233.html
Copyright © 2020-2023  润新知