Azure 微服务体系结构中的通知服务

Azure 微服务体系结构中的通知服务,azure,push-notification,notifications,microservices,Azure,Push Notification,Notifications,Microservices,我们有一个支持大型应用程序的微服务体系结构。所有服务都使用azure服务总线作为媒介进行通信。目前,我们正在根据需要从不同的服务发送通知(即时/预定)。这里需要一个单独的通知服务,它可以承担格式化和发送通知(电子邮件、文本等)的负载和责任 我的想法是: 通知服务将有自己的数据库,其中包含与通知相关的数据(设置、模板、时间表等)以及一些主数据(从其他来源复制)。我不想将所有事务数据复制到此数据库(出于明显的原因),但我们可能需要事务数据和历史数据来形成通知。我计划订阅服务总线事件(由其他服务发布)

我们有一个支持大型应用程序的微服务体系结构。所有服务都使用azure服务总线作为媒介进行通信。目前,我们正在根据需要从不同的服务发送通知(即时/预定)。这里需要一个单独的通知服务,它可以承担格式化和发送通知(电子邮件、文本等)的负载和责任

我的想法是: 通知服务将有自己的数据库,其中包含与通知相关的数据(设置、模板、时间表等)以及一些主数据(从其他来源复制)。我不想将所有事务数据复制到此数据库(出于明显的原因),但我们可能需要事务数据和历史数据来形成通知。我计划订阅服务总线事件(由其他服务发布),发送格式化通知所需数据的责任将由服务引发服务总线事件。通知服务将依赖该数据填充模板(存储在ots自己的数据库中),然后发送通知。 通知服务的工作是侦听服务总线事件,然后根据事件中的数据填充模板,然后发送通知

问题:

  • 如果通知服务从服务总线事件接收的数据没有通知模板中所需的所有必要数据,该怎么办。如何从其他服务查询/获取缺失的数据
  • 假设一个服务为一个操作发布100个事件,我们需要发送一个通知,通知整个操作。由于通知服务将分别收到100条不同的消息,它如何管理这些消息
  • 由于通知触发器取决于从其他来源发送的数据(服务总线事件),因此当我们有一个预定的通知(比如每天早上6点)时会发生什么情况。我们如何获得通知所需的数据(因为通知数据库中没有数据)
  • 我正在寻找一些经验建议和参考资料。提前谢谢

  • 您可能必须将通知实现为服务,这意味着,假设您正在将应用程序作为Azure本身的插件导出。这里有几点

  • 您的通知只有在信息有效时才会被接受
  • 前端(状态管理)和后端、微服务(Redis或任何缓存系统)都有一个缓存系统
  • 在每个操作上捕获EventId,这是一个很好的做法我们跟踪应用程序的复杂操作,通过这种方式您可以解决重复通知,注意如果可能避免向用户发送此类通知,或者尝试在一条消息中发送一个通知或一组通知

  • 3.在此处放置断路器逻辑以处理无效通知,是否将此类通知放入30分钟的重试队列?并再次发布该活动

    参考资料

    快乐编码:)