rest - 微服务架构中的电子邮件发送

标签 rest microservices restful-architecture email

对不起,我的英语-如果有什么不清楚的地方,请在评论中问我-我会澄清这一点。

我在微服务架构中构建系统。我提供一项带有用户信息的服务,一项针对“要约”的服务,以及一项针对“想法”的服务。登录和其他操作时,服务“提供”和“想法”(通过Restful API)与“用户”服务进行通信。我不知道-如何处理电子邮件?每个服务都具有独立的前端,并在某些操作后发送电子邮件(例如,当某些商品的某些第三方打开链接时,创建此商品的用户将收到电子邮件,或者当某些用户创建想法时,经理将收到电子邮件)。而且,在每个服务前端,经理可以使用季节统计数据或其他一些信息来创建“定期”邮件。每个服务电子邮件的外观都不同,并且具有不同的内容。

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

  • 每个服务都有自己的单独电子邮件系统,可以发送各种电子邮件
    电子邮件(处理后和定期发送)独立。
  • “用户服务”具有“引擎”来发送操作,并定期向电子邮件和其他服务提供任务。任务内部有一个链接,该链接指向执行任务的服务,该链接将生成电子邮件内容(例如,定期电子邮件中的统计数据)。这个解决方案很复杂...
  • “用户服务”仅具有定期发送电子邮件的引擎(任务具有链接以生成电子邮件正文...),但是从每个微服务独立的
  • 发送操作后的电子邮件
  • 创建新的微服务,仅用于使用适当的API发送电子邮件(定期和“后续操作”)。当然,每项服务(例如“优惠”)也应在邮寄任务中向其自身发送链接-当发送定期电子邮件时将调用此链接,并且该链接的响应将在电子邮件正文中生成....

  • 哪一个更好?还是有更好的选择?

    最佳答案

    发送电子邮件就像向其他服务发出请求(通过SMTP)一样。因此,当每个服务都能够发送电子邮件时,这是一个好方法。

    但是,当然,有一些发送电子邮件的通用逻辑,例如渲染模板,发送代码,配置等。此逻辑应通过通用代码(dll,程序包等)在服务之间共享。

    因此,以这种方式:

  • 每个服务都需要发送电子邮件时不依赖于另一个服务
  • 服务
  • 之间共享用于发送电子邮件的通用代码
  • 在使用专用电子邮件发送服务
  • 的情况下,您没有开发,部署和网络开销

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

    关于rest - 微服务架构中的电子邮件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41433856/

    相关文章:

    ios - 错误消息 : local or direct from server API?

    java - 如何在 Restful Web 服务中发送 XML 文件端点 url

    java - Apache FELIX JAX-RS 更改上下文路径

    python - Django-rest-framework中的可写嵌套序列化器?

    microservices - 使用消息队列的微服务架构和事件驱动架构是否相同

    java - JMS/REST 客户端作为集中式库还是每个微服务一个?

    java - 为什么HttpRequest在第二次读取时返回NULL?

    rest - 大肆宣传的 REST API 只是一个 http 方法加上 HATEOAS 链接吗?

    Spring 云配置服务 - Git 与 Native

    rest - 更新 RESTful 资源中的复合实体