后端开发问题记录

SSO(Single Sign-On,单点登录)

三方登录

A系统使用其他系统的用户,实现本系统登录的方式
解决信息孤岛和用户不对等的实现方案

消息实时推送

面试官:你的项目是如何实现消息实时推送的???

轮询

短轮询

在这里插入图片描述

客户端设置定时任务,每隔一段时间向服务端发起请求

  • 请求数量多,但是服务端数据不一定有变化,造成服务器资源浪费

在这里插入图片描述

长轮询

在这里插入图片描述

  • 服务端收到请求时,会先挂起,直到数据发生变化时通知给客户端
    • 但如果长时间没有响应,前端会超时,此时后端可以响应一个空数据,前端收到空数据后会再次发起一个请求
  • 可以减少一些无效的请求
  • 问题:请求量大时,服务器会出现大量线程堆积,造成压力过大

SSE

在这里插入图片描述

  1. 客户端向服务端发起请求
  2. 服务端以SSE协议作为响应 在这里插入图片描述
  3. 客户端收到协议后,与服务端建立SSE长链接,之后只允许服务端向客户端实时推送消息

不需要依赖第三方组件,是http协议本身就有的功能
适用于只需要服务端向客户端推送数据的场景
适用场景:股票、天气预报…

WebSocket

在这里插入图片描述

  1. 客户端发起长链接请求在这里插入图片描述
  2. 服务端同意后,建立双向通道连接,后续就可以进行双向的实时通讯,直到链接关闭
  • 应用比较普遍
  • 通常会基于netty框架进行开发,实施通信业务以及高并发量的复杂场景
    • netty集成了NIO(同步非阻塞I/O)模型
    • 对WebSocket进行了封装,使用更加方便、性能也更加高

MQTT

在这里插入图片描述

  • 主要针对物联网场景
  • 使用了发布订阅模式
  • 依赖Rabbit MQ实现
  • 设备可订阅也可发布
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值