EasyDarwin云平台之EasyCMS中心管理服务消息处理优化
2016-07-03 00:46
726 查看
问题
之前EasyCMS的消息处理一直是EasyCMS的性能瓶颈。原因是当客户端通过RESTful接口访问EasyCMS时,EasyCMS构建报文转发给设备时与出现等待问题。这就造成了EasyCMS在等待设备响应时出现了资源浪费的情况。如图所示
![](https://img-blog.csdn.net/20160703003022896)
CSHTTPSession在访问RESTful接口后再自己做循环超时等待SCHTTPSession返回回应信息。
更改方法
仿照sip协议中的From/To/Via将发送方、转发方、接收方的ID携带在报文中,当响应报文发送回来之后可以有效的索引报文的发送方和接收方,这样可以更好的将发送/接收的报文使用对应的HTTPSession进行处理。避免了循环等待的低效操作。
WEB:www.EasyDarwin.org
QQ交流群:288214068
Copyright © EasyDarwin.org 2012-2016
之前EasyCMS的消息处理一直是EasyCMS的性能瓶颈。原因是当客户端通过RESTful接口访问EasyCMS时,EasyCMS构建报文转发给设备时与出现等待问题。这就造成了EasyCMS在等待设备响应时出现了资源浪费的情况。如图所示
CSHTTPSession在访问RESTful接口后再自己做循环超时等待SCHTTPSession返回回应信息。
//HTTPSession.cpp ExecNetMsgCSGetStreamReqRESTful fInfo.uTimeoutNum++; if (fInfo.uTimeoutNum > CliStartStreamTimeout / 100)//超时了 { fInfo.bWaitingState = false;//恢复状态 return httpRequestTimeout; } else//没有超时,继续等待 { fInfo.uWaitingTime = 100;//以100ms为周期循环等待,这样不占用CPU return QTSS_NoErr; }
更改方法
仿照sip协议中的From/To/Via将发送方、转发方、接收方的ID携带在报文中,当响应报文发送回来之后可以有效的索引报文的发送方和接收方,这样可以更好的将发送/接收的报文使用对应的HTTPSession进行处理。避免了循环等待的低效操作。
//HTTPSession.cpp ExecNetMsgDSPushStreamAck string strFrom = req.GetBodyValue(EASY_TAG_FROM); string strTo = req.GetBodyValue(EASY_TAG_TO); string strVia = req.GetBodyValue(EASY_TAG_VIA); OSRefTableEx* sessionMap = QTSServerInterface::GetServer()->GetHTTPSessionMap(); OSRefTableEx::OSRefEx* sessionRef = sessionMap->Resolve(strTo); if (sessionRef == NULL) return EASY_ERROR_SESSION_NOT_FOUND; OSRefReleaserEx releaser(sessionMap, strTo); HTTPSession* httpSession = static_cast<HTTPSession *>(sessionRef->GetObjectPtr()); if (httpSession->IsLiveSession()) { //do something }
获取更多信息
邮件:support@easydarwin.orgWEB:www.EasyDarwin.org
QQ交流群:288214068
Copyright © EasyDarwin.org 2012-2016
![](http://www.easydarwin.org/skin/easydarwin/images/wx_qrcode.jpg)
相关文章推荐
- 学习VMware虚拟化技术
- 八种有效手段确保云计算服务安全通过加密等方法实现云数据安全
- 微软借Bletchley项目将云计算信息加入区块链
- 云计算开源平台架构横评(根据开源中国社区 小李飞刀 一文补充)
- 共享经济初期阶段面临的十大问题
- QingCloud Insight 2016 | 科技,洞见未来
- 1 虚拟化介绍
- EasyDarwin云平台之EasyCMS中心管理服务接入ffmpeg实现264转图片快照功能
- 2015 8月之后"云计算"学习计划
- 调戏OpenShift:一个免费能干的云平台
- 我的postfix过滤邮件、群发邮件问题 跟某云平台的故事
- 云计算服务的三种类型(SaaS、PaaS、IaaS)
- 云计算服务的三种类型(SaaS、PaaS、IaaS)
- 一种云平台用户软件更新方法
- 区块链的七年之痒
- 云计算——2、云计算发展
- 云计算——1、云计算介绍
- 腾讯“云+未来”峰会嘉宾解读智慧社区
- 云端观察:传统教育如何应对三大挑战?
- 云计算的三种服务模式:IaaS,PaaS和SaaS