【发布时间】:2019-11-06 14:38:27
【问题描述】:
我们在项目中使用微服务架构。我们使用 Kubernetes 将每个服务部署到集群中。服务是使用 Java 编程语言和 Spring Boot 框架开发的。每个服务存在三个副本。服务之间仅使用事件进行通信。 RabbitMQ 用作消息队列。其中一项服务用于发送电子邮件。电子邮件的详细信息由另一个服务与事件一起提供。当服务发布 SendingEmail 事件时,电子邮件服务的三个副本会消费该事件,并发送 3 次相同的电子邮件。 如何防止其他两个服务发送电子邮件?
【问题讨论】:
-
您使用什么类型的交换来发布活动?听起来您正在使用fanout exchange。如果您改用direct exchange,您可能可以解决您的问题。这将保证只有其中一个人会收到消息。
标签: spring-boot microservices event-driven event-driven-design