使用Server-Sent Events协议的方式访问在线服务
背景说明
Server-Sent Events(SSE)是一种服务器向客户端推送数据的技术,它是一种基于HTTP的推送技术,服务器可以向客户端推送事件。这种技术通常用于实现服务器向客户端单向推送实时数据,例如实时新闻更新、股票价格等。
SSE主要解决了客户端与服务器之间的单向实时通信需求(例如ChatGPT回答的流式输出),相较于WebSocket(双向实时),它更加轻量级且易于实现。
使用SSE协议访问在线服务有以下特点:
- 简单易用:SSE协议基于HTTP协议,实现简单,客户端无需复杂的配置或额外的库支持,可以通过普通的HTTP连接实现数据的实时推送。
- 自动重连:SSE支持自动重连机制,当连接中断时,客户端会自动尝试重新连接,确保数据推送的连续性。
- 单向通信:SSE是单向的,服务器可以向客户端发送事件,但客户端不能通过同一个连接向服务器发送数据。
- 资源占用低:SSE使用HTTP连接,相对于WebSocket等其他实时通信协议,资源占用较低,适合轻量级的实时数据推送场景。
前提条件
在线服务中的模型导入选择的镜像需支持SSE协议。
约束与限制
- SSE协议只支持部署在线服务。
- 只支持自定义镜像导入模型部署的在线服务。
- 调用API访问在线服务时,对预测请求体大小和预测时间有限制:
- 请求体的大小不超过12MB,超过后请求会被拦截。
- 因APIG(API网关)限制,平台每次请求预测的时间不超过40秒。