08.分布式通信协议
约 503 字大约 2 分钟...
汇总:
协议名称 | 定义 | 特性 | 应用场景 | 常见实现 |
---|---|---|---|---|
RPC | 允许程序调用远程服务器上的函数或过程,就像调用本地函数一样 | - 透明性 - 同步调用 | - 微服务架构中的服务间通信 - 分布式系统中的远程函数调用 | - gRPC - Thrift |
REST | 基于HTTP协议的分布式系统通信风格,使用标准的HTTP方法进行操作 | - 资源导向 - 无状态 | - Web服务和API - 微服务架构中的服务间通信 | - Spring Boot - Express.js |
WebSockets | 全双工通信协议,允许客户端和服务器之间建立持久连接,实现实时双向通信 | - 全双工通信 - 低延迟 | - 实时聊天应用 - 实时数据推送(如股票行情、在线游戏) | - Socket.IO - SignalR |
MQTT | 轻量级的发布/订阅消息传递协议,设计用于低带宽、高延迟或不可靠网络环境 | - 轻量级 - 发布/订阅模式 | - 物联网(IoT)设备通信 - 移动消息推送 | - Eclipse Mosquitto - HiveMQ |
Gossip | 去中心化的通信协议 ,用于在分布式系统中的各个节点之间传播信息和状态 | - 去中心化 - 容错性高 - 渐进一致性 - 简单和高效 | - 分布式数据库(如Cassandra、Riak) - 分布式文件系统(如Amazon Dynamo) - 分布式协调服务(如Consul) - 分布式监控系统(如Prometheus) | - Cassandra - Riak - Amazon Dynamo - Consul - Prometheus |
AMQP | 高级消息队列协议,支持消息的发布/订阅、点对点和事务性消息传递 | - 可靠性(支持消息确认、持久化和事务) - 灵活性(支持多种消息传递模式) | - 企业级消息传递系统 - 分布式系统中的消息队列 | - RabbitMQ - Apache Qpid |