【发布时间】:2021-02-16 23:51:19
【问题描述】:
我们有一个微服务架构来支持大型应用程序。所有服务都使用 Azure 服务总线作为媒介进行通信。目前,我们正在根据需要从不同的服务发送通知(立即/预定)。这就需要一个单独的通知服务来承担格式化和发送通知(电子邮件、文本等)的负载和责任。
我的想法: 通知服务将拥有自己的数据库,其中包含与通知相关的数据(设置、模板、时间表等)以及一些主数据(从其他来源复制)。我不想将所有事务数据复制到这个数据库(出于明显的原因),但我们可能需要事务和历史数据来形成通知。我计划订阅服务总线事件(由其他服务发布),并且发送格式化通知所需的数据的责任将在于服务引发服务总线事件。通知服务将依靠该数据填充模板(存储在 ots 自己的数据库中),然后发送通知。 通知服务的工作是监听服务总线事件,然后从事件中的数据填充模板,然后发送通知。
问题:
- 如果通知服务从服务总线事件接收的数据没有通知模板中所需的所有必要数据怎么办。如何从其他服务查询/获取丢失的数据?
- 假设一个服务为单个操作发布了 100 个事件,我们需要发送单个通知来表明整个操作。通知服务如何管理它,因为它会分别收到 100 条不同的消息。?
- 由于通知触发器依赖于从其他来源发送的数据(服务总线事件),当我们有一个安排好的通知时会发生什么(比如说每天早上 6 点)。我们如何获取通知所需的数据(因为通知数据库中没有数据)?
我正在寻找一些经验建议和一些可参考的材料。提前致谢。
【问题讨论】:
标签: azure push-notification notifications microservices