当前位置: 首页 > 科技观察

作为架构师,服务器推送的四种方式你都了解吗?

时间:2023-03-19 13:10:38 科技观察

常用的服务器推送方式大致可以分为四种。1、短轮询:在客户端,周期性的向服务器请求,然后刷新信息到客户端页面。一般的互联网行业标准是5秒。2、长轮询:客户端向服务器发送Ajax请求,服务器收到请求后保持连接,返回响应消息并关闭连接,直到有新消息,客户端再向服务器发送新请求服务器处理响应消息后。原理就是servlet的异步请求长连接。也就是说,在异步请求中,原始请求返回时并没有关闭连接,只是关闭了处理请求的线程(一般在回收线程池中),所有异步请求结束后才会关闭连接被处理。具体实现技术spring提供了DeferredResult方法。可以快速释放容器线程,接受更多的请求来提高吞吐量,让真正的业务逻辑在其他工作线程中完成。3.sse(Server-sentEvents)是WebSocket的轻量级替代品,使用HTTP协议。SSE是一种单向通道,只有服务器才能向客户端发送消息。如果客户端需要向服务器发送消息,则需要一个新的HTTP请求。4.websocket:全双工,长连接。下面是几个业务场景:1、京东采用短轮询的方式获取订单信息,因为业务量巨大,但时间相对较短。2、网页版微信采用长轮询的方式。3、在线客服系统和聊天系统一般使用websockets。无论是腾讯还是京东,他们都结合自己的业务特点,综合分析了几种方式的优缺点,选择了适合自己的方式。因此,作为架构师,不仅要有微观的技术考虑,还要有宏观的架构思考。