我们拥有微服务架构来支持大型应用程序。所有服务都使用azure服务总线作为媒介进行通信。目前,我们正在根据需要从不同的服务发送(立即/计划的)通知。这里需要一个单独的通知服务,该服务可以承担这种负担,并负责格式化和发送通知(电子邮件,文本等)。
我的想法: 通知服务将拥有自己的数据库,该数据库将包含与通知相关的数据(设置,模板,时间表等)以及一些主数据(从其他来源复制)。我不想将所有交易数据复制到该数据库(出于显而易见的原因),但是我们可能需要交易和历史数据来形成通知。我打算订阅服务总线事件(由其他服务发布),并且发送格式化通知所需的数据的责任在于服务引发服务总线事件。通知服务将依靠该数据填充模板(存储在ots自己的DB中),然后发送通知。 通知服务的工作是侦听服务总线事件,然后根据事件中的数据填充模板,然后发送通知。
问题:
我正在寻找一些经验建议和一些参考资料。预先感谢。
答案 0 :(得分:1)
您可能需要将通知实现为服务,这意味着,假设您将应用程序作为插件导出到 Azure 本身。这里有几点.....
在每个操作上捕获 EventId,这是一个很好的做法,我们可以通过这种方式跟踪应用程序的复杂操作,您可以解决重复通知,注意尽可能避免向用户发送此类通知,或者尝试发送一条通知,在一条消息中召集一组通知,
3.在这里放置一个断路器逻辑来处理您的无效通知,将这种类型的通知放入30分钟的重试队列中吗?并重新发布活动
参考资料
快乐编码:)