Web端即时通讯实践:实现单机几十万条长连接

本文介绍了如何使用Play框架和Akka Actor Model处理Web端即时通讯的长连接,通过SSE技术实现服务器主动推送。文章讨论了在实际生产环境中遇到的限制,包括Socket连接数限制、JVM线程数、临时端口耗尽、文件描述符限制和JVM堆内存问题,并给出了相应的优化解决方案。
摘要由CSDN通过智能技术生成

内容会包含我们是如何使用Play框架和Akka Actor Model来管理长连接、由服务器主动发送事件的。

SSE(Server-sent events)技术简介

服务器发送事件(Server-sent events,SSE)是一种客户端服务器之间的通信技术(详见即时通讯网整理的文章《SSE技术详解:一种全新的HTML5服务器推送事件技术》),具体是在客户端向服务器建立起了一条普通的HTTP连接之后,服务器在有事件发生时就通过这条连接向客户端推送持续的数据流,而不需要客户端不断地发出后续的请求。客户端要用到EventSource接口来以文本或事件流的形式不断地接收服务器发送的事件或数据块,而不必关闭连接。所有的现代网页浏览器都支持EventSource接口,iOS和安卓上也都有现成的库支持。

使用真实生产环境流量做压力测试

所有的系统最终都是要用真实生产流量来考验一下的,可真实生产流量又不是那么容易复制的,因为大家可以用来模拟做压力测试的工具并不多。但我们在部署到真实生产环境之前,又是如何用真实的生产流量来做测试的呢?在这一点上我们用到了一种叫“暗地启动”的技术,在我们下一篇文章中会详细讨论一下。

为了让这篇文章只关注自己的主题,让我们假设我们已经可以在我们的服务器集群中产生真实的生产压力了。那么测试系统极限的一个有效方法就是把导向一个单一节点的压力不断加大,以此让整个生产集群在承受极大压力时所该暴露的问题极早暴露出来。

通过这样的办法以及其它的辅助手段,我们发现了系统的几处限制。下面几节就讲讲我们是如何通过几处

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值