gpt4 book ai didi

azure - 微服务架构中的通知服务

转载 作者:行者123 更新时间:2023-12-04 03:49:10 25 4
gpt4 key购买 nike

我们有一个微服务架构来支持一个大型应用程序。所有服务都使用 azure 服务总线作为媒介进行通信。目前,我们正在根据需要从不同的服务发送通知(立即/预定)。这就需要一个单独的通知服务,它可以承担格式化和发送通知(电子邮件、文本等)的负担和责任。
我的想法:
通知服务将拥有自己的数据库,其中包含与通知相关的数据(设置、模板、时间表等)以及一些主数据(从其他来源复制)。我不想将所有事务数据复制到这个数据库(出于明显的原因),但我们可能需要事务和历史数据来形成通知。我计划订阅服务总线事件(由其他服务发布)并且发送格式化通知所需的数据的责任将在服务引发服务总线事件上。通知服务将依赖该数据来填充模板(存储在 ots 自己的数据库中),然后发送通知。
通知服务的工作将是监听服务总线事件,然后从事件中的数据填充模板,然后发送通知。
问题:

  • 如果通知服务从服务总线事件接收到的数据没有通知模板中所需的所有必要数据,该怎么办。如何从其他服务查询/获取丢失的数据。?
  • 假设一个服务为单个操作发布 100 个事件,我们需要发送整个操作的单个通知。通知服务如何管理它,因为它将分别收到 100 条不同的消息。?
  • 由于通知触发器依赖于从其他来源(服务总线事件)发送的数据,当我们有一个预定的通知(假设每天早上 6 点)时会发生什么。我们如何获取通知所需的数据(因为通知数据库中没有数据)?

  • 我正在寻找一些经验建议和一些可供引用的 Material 。提前致谢。

    最佳答案

  • 您可能需要将通知实现为服务,这意味着,假设您将应用程序作为插件导出到 Azure 本身。这里有几点.....
  • 你的通知只有在它是有效信息时才会接受,
  • 前端(状态管理)和后端都有缓存系统,微服务(Redis 或任何缓存系统)

  • 在每个操作上捕获 EventId,这是一个很好的做法,我们跟踪应用程序的复杂操作,通过这种方式您可以解决重复通知,注意尽可能避免向用户发送此类通知,或者尝试发送一个通知召集一条消息中的一组通知,

  • 3.在这里放置一个断路器逻辑来处理您的无效通知,将此类通知放入30分钟的重试队列中吗?并再次重新发布事件
    引用
  • https://www.rabbitmq.com/dlx.html
  • https://microservices.io/patterns/reliability/circuit-breaker.html
  • https://redis.io/topics/introduction

  • 快乐编码:)

    关于azure - 微服务架构中的通知服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64677465/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com