当前位置: 首页 > 知识库问答 >
问题:

微服务体系结构中的电子邮件发送

长孙章横
2023-03-14

对不起我的英语-如果有些事情不清楚,请在评论中问我-我会澄清这一点。

我用微服务架构构建系统。我有一项关于用户信息的服务,一项关于“提供”的服务,还有一项关于“想法”的服务。服务“提供”和“想法”在登录和其他操作时与“用户”服务通信(通过RESTfulAPI)。我想知道如何处理电子邮件?每个服务都有独立的前端,并在某些操作后发送电子邮件(例如,当某个第三方打开与某个报价的链接时,创建此报价的用户将收到电子邮件,或者当某个用户创建创意时,经理将收到电子邮件)。此外,在每个服务前端,经理可以创建带有季节统计数据或其他一些信息的“定期”邮件。每封服务电子邮件的外观不同,内容也不同。

我有很多选择,不知道哪个会更好。以下是一些命题:

  1. 每个服务都有自己独立的电子邮件系统,并独立发送各种电子邮件(行动后和定期)

哪一个会更好?或者可能有更好的选择?

共有1个答案

陶星渊
2023-03-14

发送电子邮件就像向另一个服务发出请求(通过SMTP)。所以,当每一项服务都能发送电子邮件时,这是一个很好的方法

但是,当然,发送电子邮件有一些常见的逻辑,比如渲染模板、发送代码、配置等等。这个逻辑应该通过公共代码(dll、包等)在服务之间共享。

因此,通过这种方式:

  1. 当需要发送电子邮件时,并非每项服务都依赖另一项服务
  2. 发送电子邮件的通用代码在服务之间共享
  3. 在提供专用电子邮件发送服务的情况下,您没有开发、部署和网络开销

这种方法的一个缺点是每个服务都应该具有相同的电子邮件配置(SMTP地址、登录名、密码等)。但是如果您在所有服务之间共享配置,这不是问题。

 类似资料:
  • 我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:

  • 总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?

  • 我是事件驱动微服务的新手,也是微服务本身的新手。我正在开发的系统并不大,它处理一堆文件,然后根据调用不同服务的数据。所以在我看来,一个好主意是,不要让服务调用其他服务来完成这项工作,而是将这些消息发送到发布/订阅队列,处理它们并将它们发送到相关主题,然后每个服务将订阅其中一个或几个主题,每隔几分钟,每个服务都会提取它们订阅的消息并发挥它们的魔力。这些服务也可以通过Rest来公开,以防您想强制执行它

  • 我有一个微服务体系结构,它的日志必须发送到远程Kafka主题。在它旁边,本主题的使用者将把日志发送到麋鹿堆栈(另一个团队) 我想要一个专用的微服务(fwk proxy elasticsearch),其职责是收集其他人的日志,并将其发送到远程Kafka主题。 将从我的微服务聚合的所有日志分派到fwk-代理-弹性搜索微服务的最佳协议是什么? 我希望这个模式不会重复远程Kafka主题的安全配置。我想把它

  • 我经常听说,在微服务架构中,对于每一个微服务,我们都必须创建单独的数据库。 但是,如果我必须在不同的数据库中维护外键约束,这是不可能的。就像我在身份验证微服务中有一个用户表,我想在我的目录服务中使用它(用户表中的用户 ID 列) 那么如何解决呢。 感谢提前

  • null null myApp应用程序不能直接访问用户数据库,所有通信都只能通过用户认证微服务处理。 在过去的一周里,我广泛阅读了关于REST API中的授权/身份验证的内容,但仍然不知道如何为User->myApp和MyApp->User-Authentication微服务构建一个可靠的授权/身份验证系统。 这是我现在想出来的。 null Now, user signs in sending u