赞
踩
一.netty通讯中tcp心跳维持有以下两种:
1.TCP协议自带的心跳机制来实现,默认2h心跳检测频率。
2.应用层通过协议实现心跳机制。
二.最近的一个物联网项目,整体的通讯架构如下:
服务端和客户端采用tcp连接,通过自定义协议维护心跳,分为两种工况,一种10s正常心跳,一种15min睡眠心跳, 实际通讯中遇到一个问题:客户端5min未有数据上报,平台会发送空包导致客户端断开。
通过tcpdump抓包分析,由于负责代理和负载均衡的Nginx和ELB有如下配置:
stream{
upstream acpaccess{
hash $remote_addr consistent;
server 127.0.0.1:18000 max_fails=3 fail_timeout=10s;
}
server{
listen 80;
proxy_connect_timeout 300s;
proxy_timeout 5m;
proxy_pass acpaccess;
}
}
proxy_connect_timeout :连接超时300s后主动发起断开连接,导致客户端与云平台正常连接终端。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。