通信协议与消息处理全解析
在构建系统时,我们所做的许多架构选择会限制消息的传递和处理方式。常见的消息传递方式主要分为同步 API 和异步队列或主题。
1. 消息传递类型
| 传递类型 | 代表协议 | 处理方式 |
|---|---|---|
| 同步 API | REST、GraphQL、gRPC | 服务器在同一通道处理请求并返回响应 |
| 异步队列或主题 | Kafka、RabbitMQ、SQS | 服务器从队列拉取消息进行处理,并将结果发布到不同队列供下游消费 |
在不可变架构中,我们可以将通信和处理这两个概念分开。在选择通信方式时,可以考虑发送方与接收方的距离、是否由同一组织控制以及是否永久连接等因素;而处理方式的选择则基于对话的预期进展以及发起方是否期望响应。
2. 消息传递的保证
消息传递的保证是一个复杂的问题,不同的网络层次提供不同程度的保证。
- 网络层 :不提供传递保证,主要负责寻址、路由和错误纠正。
- 传输层 :负责向发送方报告传递成功,但不一定能报告失败,且最终可能会放弃重试。
- 应用层 :一些协议开始提供传递保证
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



