SSO(Single Sign-On,单点登录)
三方登录
A系统使用其他系统的用户,实现本系统登录的方式
解决信息孤岛和用户不对等的实现方案
消息实时推送
轮询
短轮询
客户端设置定时任务,每隔一段时间向服务端发起请求
- 请求数量多,但是服务端数据不一定有变化,造成服务器资源浪费
长轮询
- 服务端收到请求时,会先挂起,直到数据发生变化时通知给客户端
- 但如果长时间没有响应,前端会超时,此时后端可以响应一个空数据,前端收到空数据后会再次发起一个请求
- 可以减少一些无效的请求
- 问题:请求量大时,服务器会出现大量线程堆积,造成压力过大
SSE
- 客户端向服务端发起请求
- 服务端以SSE协议作为响应
- 客户端收到协议后,与服务端建立SSE长链接,之后只允许服务端向客户端实时推送消息
不需要依赖第三方组件,是http协议本身就有的功能
适用于只需要服务端向客户端推送数据的场景
适用场景:股票、天气预报…
WebSocket
- 客户端发起长链接请求
- 服务端同意后,建立双向通道连接,后续就可以进行双向的实时通讯,直到链接关闭
- 应用比较普遍
- 通常会基于netty框架进行开发,实施通信业务以及高并发量的复杂场景
- netty集成了NIO(同步非阻塞I/O)模型
- 对WebSocket进行了封装,使用更加方便、性能也更加高
MQTT
- 主要针对物联网场景
- 使用了发布订阅模式
- 依赖Rabbit MQ实现
- 设备可订阅也可发布