问题描述
我正在经历一个微服务通过 RabbitMQ 向自身发送异步消息的项目,因为它同时包含消息生产者和消费者部分。原因是该服务可以向其他服务生成相同类型的消息,并从其他服务接收相同类型的消息。
这个模式对我来说是新的。它是微服务世界中的反模式吗?
解决方法
我不确定给出的原因是最好的动机,但在 CQRS 风格的架构中,向自身发送消息的服务是完全正常的。在这样的架构中,每个服务将托管两个进程:一个前端或公共 API(例如网站或 REST API)和一个后台进程/守护进程,用于处理公共 API 放入队列的所有消息。