我有2个微服务身份和通信。用户注册后,我想向他发送一个激活链接到他的电子邮件。激活链接在“身份”端生成,如何将其传递给Communication Microservice发送电子邮件?或通信微服务不应该作为单独的微服务存在,但是每个微服务都可以使用IEmailSender实用工具发送电子邮件吗?
答案 0 :(得分:0)
通信绑定上下文对于我的系统是错误的。它只是每个边界上下文应具有的技术帮助服务,以实现其业务能力。例如,为了激活帐户的身份需要这种基础结构。删除了BC通讯,并直接从Identity中发送电子邮件。
答案 1 :(得分:0)
我通常有一个处理电子邮件的端点。我使用Shuttle.Esb开源服务总线来简化消息传递,但是任何服务总线都可以,或者您可以选择使用RabbitMQ之类的代码直接对消息传递进行编码。
端点之间的集成由业务流程端点针对所讨论的有界上下文进行处理。该业务流程层将向电子邮件端点发送SendEMailCommand
,然后在成功发送电子邮件后接收确认。这样,可以处理电子邮件的一个地方。
当您每个有界上下文访问类似IEMailGateway
之类的东西时,这意味着您可能需要做一些额外的工作来使电子邮件继续运行,因为您需要访问相关的邮件服务器,并且可能意味着要处理防火墙,端口,安全性