【Java EE】网络通信中的 4 种交互模式

网络通信中的 4 种交互模式

一问一答(请求-响应模式)

这是最经典、最基础的交互模式。
Server Client Server Client 请求 响应

代表协议

  • HTTP / HTTPS
  • DNS 查询
  • SQL 查询(非流式)

适用场景

  • 网页浏览
  • RESTful API
  • 普通的增删改查操作

特点

  • 简单、无状态
  • 客户端必须主动发起
  • 服务器不能主动推送

✅ 适合"我问你答一次就结束"的场景

一问多答(订阅 / 推送模式)

客户端只发一次请求,服务器持续返回多条数据。
Server Client Server Client loop [持续推送] 订阅请求 数据 1 数据 2 数据 N

代表技术

  • SSE(Server‑Sent Events)
  • WebSocket(单向推送视角)
  • RSS 订阅
  • Kafka / MQTT 订阅

适用场景

  • 股票行情
  • 比赛实时比分
  • 新闻 / 微博时间线推送
  • 实时日志监控

特点

  • 一次订阅,多次推送
  • 服务器有"主动说话"能力(有限)
  • 适合 观察者模式

多问一答(批量 / 聚合模式)

客户端发起多个请求,服务器聚合后返回一次响应。
Server Client Server Client 请求 A 请求 B 请求 C 统一聚合响应

代表技术

  • HTTP/2 多路复用
  • GraphQL
  • 分片上传(最后一次性确认)

典型场景

1. 大文件分片上传

  • 客户端将文件切成 1MB 的小块
  • 并发上传多个分片
  • 服务器全部收齐后返回"上传成功"

2. GraphQL

  • 一次请求获取用户、订单、商品列表
  • 减少网络往返次数

特点

  • 减少网络往返(RTT)
  • 更高效的批量处理
  • 客户端与服务器之间有"多对一"的约定

多问多答(双向实时通信模式)

建立连接后,双方都可以随时主动发送消息。
Server Client Server Client loop [全双工通信] 连接建立 控制指令 画面数据 状态通知 心跳 / 操作

代表技术

  • WebSocket
  • TCP / UDP 长连接
  • MQTT
  • SignalR / Socket.IO

典型场景

场景 说明
远程控制(ToDesk / TeamViewer) 控制端输入指令,被控端持续回传屏幕画面
在线聊天(微信 / 钉钉) 双方任意时刻都能发送消息
多人在线游戏 玩家动作广播 + 服务器推送状态
实时协同文档 多人同时编辑,互相看到光标和内容

特点

  • 真正的 双向实时
  • 需要维护长连接
  • 复杂度远高于一问一答

四种模式对比总结

模式 请求次数 响应次数 方向 代表技术 典型场景
一问一答 1 1 单向请求 HTTP 普通 API
一问多答 1 N 订阅推送 SSE、WebSocket 行情推送
多问一答 N 1 批量聚合 GraphQL、分片上传 批量查询
多问多答 N N 双向实时 WebSocket、MQTT 聊天、游戏

如何选择合适的模式?

1次响应
多次响应
不需要
需要
客户端与服务器交互

需要几次响应?
一问一答

HTTP / API
是否需要客户端

持续主动发送?
一问多答

SSE / 订阅推送
多问多答

WebSocket / 长连接
简单、无状态
订阅、观察者模式
双向实时、高复杂度

相关推荐
xinhuanjieyi1 小时前
vscode插件,.sec / .inc / .sc 文件添加关键字高亮
java·服务器·vscode
Mr_pyx1 小时前
RAG知识库从零到一:简单搭建教程(java版)
java·spring·ai·rag
敲代码的瓦龙1 小时前
Android?碎片!!!
java·开发语言·android-studio
月落归舟1 小时前
深入解析Spring依赖注入 DI 的三种方式
java·后端·spring
byte轻骑兵1 小时前
【HID】规范精讲[12]: 蓝牙HID设备的连接信息存储机制深度解析
人工智能·人机交互·交互·键盘·鼠标·hid
亚马逊云开发者1 小时前
Lambda 冷启动改善了,你的 Provisioned Concurrency 可能白花钱了
java
C雨后彩虹2 小时前
猴子爬山问题
java·数据结构·算法·华为·面试
天真吴邪xie2 小时前
Claude Code安装
java·git
小新同学^O^2 小时前
简单学习 --> Spring统一处理
java·学习·spring·统一功能处理