解决方案构想
本文介绍了一种解决方案构想。 云架构师可以通过本指南来帮助可视化此体系结构的典型实现的主要组件。 以本文为起点,设计一个符合工作负荷特定要求的架构合理的解决方案。
本文介绍弹性、灵活的发布-订阅模型,它让数据生成者和使用者能够创建和使用经过验证的特选内容或数据。
体系结构
下载此体系结构的 Visio 文件。
数据流
“数据生成者”应用将数据发布到 Azure 事件中心,后者将数据发送到 Azure Functions 的“事件处理”功能。
“数据生成者”还发送 JSON 架构以存储在 Azure 存储容器中。
“事件处理”功能从 Azure Cache for Redis 检索 JSON 架构以降低延迟,并使用该架构来验证数据。
如果架构尚未缓存,“事件处理”功能会从 Azure 存储容器中检索架构。 对架构的请求还会将架构存储在 Azure Cache for Redis 中以供将来检索。
注意
事件中心内的 Azure 架构注册表是存储和缓存 JSON 架构的可行替代方案。 有关详细信息,请参阅事件中心内的 Azure 架构注册表(预览版)。
如果某个主题已存在并且数据有效,“事件处理”功能会将数据合并到现有的“有效数据”Azure 服务总线主题中,并将该主题发送到“数据使用者”应用。
如果某个主题已存在并且数据无效,“事件处理”功能会将数据合并到现有的“无效数据”服务总线主题中,并将该主题发回到数据生成者。 数据生成者订阅“无效数据”主题以获取有关生成者创建的无效数据的反馈。
如果某个主题尚不存在,“事件处理”功能会将新数据发布到“新数据”服务总线主题,并将该主题发送到“服务总线主题管理器”功能。
如果新数据有效,“事件处理”功能还会将该数据作为新的“快照数据”记录插入到 Azure Cosmos DB 中。
如果新数据有效,“服务总线主题管理器”功能会创建一个新的“有效数据”服务总线主题,并将该主题发送到事件中心。
如果新数据无效,“服务总线主题管理器”功能会创建一个新的“无效数据”服务总线主题,并将该主题发回到“数据生成者”应用。
Azure 数据工厂中的“快照数据平面文件处理器”按计划运行,以从“快照数据”Azure Cosmos DB 数据库中提取所有快照数据。 该处理器创建一个平面文件并将其发布到 Azure 存储中的“快照数据平面文件”以供下载。
“数据使用者”应用检索“服务总线主题管理器”提供的所有可订阅服务总线主题的列表。 该应用向“服务总线主题管理器”注册以订阅服务总线主题。
组件
方案详细信息
Transit Hub 是一个动态的发布-订阅模型,它让数据生成者和使用者能够创建和使用经过验证的特选内容或数据。 该模型具有弹性,可以实现规模和性能方面的需求。 数据生成者可以快速加入数据并将数据上传到某个服务。 该服务根据数据生成者提供的架构验证数据。 然后,该服务将已验证的数据提供给订阅者,使他们能够使用所需的数据。
验证数据的服务不需要知道有效负载,只需知道有效负载是否对生成者提供的架构有效。 这种灵活性意味着服务可以接受新的有效负载类型,而无需重新部署。 该解决方案还允许数据使用者获取在使用者订阅之前发布的历史数据。
可能的用例
该模型在以下方案中特别有用:
- 用户数量和状态未知或不可预知地变化的消息传递系统
- 可能需要支持新的或未知数据源的发布系统
- 需要持续更新数据并将其缓存以快速交付的商务或票务系统