服务模块
应用接口/通信协议
应用协议 | 传输模型 | 连接模式 | 适用场景 | 特点 |
---|---|---|---|---|
HTTP | 请求-响应 | 无状态 | 网页请求、RESTful API | 简单易用,广泛支持,适合静态内容传输 |
WebSocket | 全双工 | 持久连接 | 实时应用(聊天、游戏) | 实现双向实时通信,减少延迟 |
MQTT | 发布-订阅 | 持久连接 | 物联网、移动设备 | 轻量级,适合低带宽、高延迟环境 |
CoAP | 请求-响应 | 无状态 | 物联网、嵌入式系统 | 类似HTTP,适合资源受限设备 |
AMQP | 消息队列 | 持久连接 | 企业消息中间件 | 提供复杂的消息路由和事务支持 |
STOMP | 消息队列 | 持久连接 | 轻量级消息中间件 | 简单易用,广泛兼容多种语言 |
gRPC | 请求-响应 | 持久连接 | 微服务架构、跨语言服务 | 基于HTTP/2,支持流式传输和高效序列化 |
GraphQL | 请求-响应 | 无状态 | 复杂查询、API整合 | 灵活查询,客户端控制数据获取 |
RESTful API | 请求-响应 | 无状态 | CRUD操作、资源管理 | 资源导向,简单,基于HTTP |
gRPC
:基于HTTP/2,支持双向流,适用于微服务架构。GraphQL
:允许客户端精确指定所需数据,适合复杂数据获取场景。RESTful API
:基于HTTP协议,强调资源的创建、读取、更新和删除(CRUD)操作。
事件通道/消息队列
消息队列 | 性能 | 可扩展性 | 持久化机制 | 适用场景 | 特点 |
---|---|---|---|---|---|
Apache Pulsar | 高 | 高 | 灵活的持久化策略 | 实时数据处理、物联网 | 多租户支持,存储与计算分离 |
Apache ActiveMQ | 中等 | 中 | 可配置的持久化策略 | 企业消息中间件 | 支持多种协议,易于集成 |
RabbitMQ | 中高 | 中 | 持久化消息队列 | 实时消息处理、微服务 | 灵活的路由和插件系统 |
Apache RocketMQ | 高 | 高 | 基于时间的持久化 | 大数据、金融服务 | 高吞吐量,支持事务消息 |
Apache Kafka | 非常高 | 非常高 | 日志存储,时间/大小限制 | 流处理、日志收集 | 高吞吐量、可扩展性强 |