P2P点播系统性能优化(2): 减少客户端的心跳包
来源:互联网 发布:数据库系统实现 编辑:程序博客网 时间:2024/04/30 15:19
在Client/Server应用服务器开发中,有时需要给UDP/TCP链接增加心跳消息,以便后台服务器能记录客户端的在线状态。
通常做法:
1.假定心跳时间 KeepaliveTime = 60 秒 ;
2.客户端启用定时器每过60秒钟向服务器发送心跳包,服务器收到心跳包后给客户端,更新心跳计时器信息并给客户端回复心跳确认包 ;
3.客户端设定一个超时时间,比如在3秒内未收到确认包,则重新发送该心跳包。收到确认包后,更新客户端计时器信息,跳转到2 。
优化方法:
1.假定心跳时间 KeepaliveTime = 60 秒 ;
2.客户端启用定时器每过60秒钟向服务器发送心跳包,服务器收到心跳包后给客户端,更新心跳计时器信息并给客户端回复心跳确认包 ;
3.客户端如果在向应用服务器发送心跳包之前收到服务器的其他应用协议数据包,此时重置计时器,重新开始计时 ;
4.客户端设定一个超时时间,比如在3秒内未收到确认包,则重新发送该心跳包。收到确认包后,重置客户端计时器信息,跳转到2 。
总结:
优点: 当应用服务器有几十万甚至上百万的同时在线用户时,心跳包占整个客户端和服务器端通信协议比重会比较高。因此,通过减少客户端向服务器端发送心跳包的数量可以有效的降低应用服务器端得负载,节省更多的带宽和CPU资源。
缺点:延迟服务器端发现客户端下线的时间。
- P2P点播系统性能优化(2): 减少客户端的心跳包
- P2P点播系统性能优化(1): 客户度NAT类型检测
- P2P点播系统性能优化(3): Tracker服务器选择最优节点
- P2P 点播系统(1)--P2P 点播系统的架构介绍
- 性能优化:减少应用程序安装包的大小
- 龙腾P2P流媒体点播系统商业计划书
- 龙腾P2P流媒体点播系统商业计划书
- 龙腾P2P流媒体点播系统商业计划书
- 分布式系统的心跳检测机制优化
- 【系统性能优化】减少页面对公共资源Easyui的访问次数
- android客户端的性能优化
- JAVA的心跳包
- 心跳包的编写
- 心跳包的教训
- Sokect的心跳包
- mina心跳包:客户端发送心跳包,服务端响应心跳包
- mina 2 心跳包
- 数据库性能优化-4-减少对数据库的连接次数
- Android的SoundPool类使用与利弊
- 目前缺少的功能
- 关于ultraedit的大括号对齐
- 为什么不要在STL容器中存储 auto_ptr 对象
- SICP Exercise 3.53
- P2P点播系统性能优化(2): 减少客户端的心跳包
- Window 2003 Server R2安装IIS时总提示“需要Service Pack 2 CD-Rom 上的文件”
- CentOS 6.0 Apache的cronolog的安装与自定义日志
- oracle资源忙
- linux 磁碟与档案系统管理
- Binder学习一 ServiceManager初始化
- SSH+ORACLE案例过程中出现的额一系列问题的可用解决方案(一)
- ubuntu下安装qq
- MD5 的C++源码