云架构师的职责与消息队列及数据存储解析
1. 云架构师的职责
云架构师在消息队列应用中扮演着关键角色,其主要工作如下:
1.1 确定消息队列使用位置
架构师需从整体考虑应用,思考哪些组件拆分为独立部分能更好地利用消息队列,可通过以下问题来判断:
- 应用在何处与外部系统通信?
- 应用在何处与不可靠系统通信?
- 流程中哪些部分是核心操作,哪些是附加操作?
- 哪些部分需要立即处理,哪些可以稍后处理?
- 哪些部分需要更多资源或时间来完成?
- 团队通常需要协调流程的哪些部分?
- 系统内发生的哪些主要“事件”可能是其他系统想了解的?
- 哪些信息可能会引起多个团队的普遍兴趣?
1.2 拆分应用并确定消息模式
架构师将应用拆分为使用消息代理进行通信的部分,决定所使用的消息模式和消息格式。若选择事件总线架构,需定义通用的消息格式。
1.3 选择消息代理
选择消息代理时,不仅要考虑对所选消息模式的支持,还要考虑可靠性、安全性、速度、可观测性(查看排队系统以诊断问题的能力)、管理便捷性和开发便捷性。对于大多数情况,管理和开发的便捷性常被低估。一些消息队列系统(如 Kafka)设置和管理难度大,但设置正确可带来大规模扩展的好处。不过,如果消息总线本身成为问题和困扰的源头,那就失去了作用。大型组织可能有专门团队确保消息总线正常运行,但对大多数组织来说,重要的是消息总线能自动正常工作。
1.4 消息大小的选择
消息基本分为两种大小:瘦消息和胖消息。
- 瘦消息:仅包含其