通用¶
keyword:
请求/响应模型
发布/订阅模型
Request/response pattern
Publish/subscribe pattern
通信模型主要包括:
- 同步模型:如请求/响应,C/S,RPC等。
- 异步模型:如发布/订阅,消息队列等。
- 中间件模型:如代理等。
- P2P模型:去中心化直接通信模型。
通信模式communication patterns:
Request/response(请求/响应)
变种:
客户端-服务器模式(Client-Server)
请求-异步响应模式(Request-Async-Response)
请求-异步响应-回调模式(Request-Async-Response-Callback)
请求-响应-流模式(Request-Response-Stream)
示例:
REST
C/S模型
客户端和服务器长连接通信,可以相互发起数据发送,双向通信
示例:
FTP,WebSocket
Publish/subscribe(发布/订阅)
示例:
Apache Kafka
AMQP
MQTT
通常用于消息分发和事件处理。
Remote procedure call (RPC)
一个实体可以调用另一个实体的远程过程,就像本地调用一样
示例:
gRPC
Thrift
代理模型:
客户端通过代理服务器与其他客户端或服务器通信,代理负责转发消息
示例:
socks
Message Queue模型:
通过消息队列来转发和存储消息,实现异步解耦的通信
示例:
ActiveMQ, RabbitMQ
Peer-to-peer (P2P)
没有专门的服务器,客户端可以直接连接和通信
A pattern where nodes in a network can act as both clients and servers.
示例:
Skype, Torrent
流式传输模式(Streaming)
数据以流的形式从一个实体传输到另一个实体
常用于数据处理和实时系统
管道-过滤器模式(Pipe-Filter)
一个实体可以向另一个实体发送数据流,而不需要进行请求和响应
数据在一系列过滤器中流动,每个过滤器负责对数据进行一些处理,然后将其传递给下一个过滤器。
这种模式通常用于数据转换和数据清洗。
Other
批处理模式Batch processing
共享内存模式(Shared Memory)
分布式事务Distributed transactions
A pattern for ensuring that multiple operations across multiple systems are treated as a single, atomic transaction.