通用 #### 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.