如何用RabbitMQ实现单一职责原则?

问题描述 投票:0回答:1

我有几个微服务:

  • WebClient,将数据从 UI 发送到其他服务
  • 服务一,它可以对来自 WebClient 的数据执行一些操作并将其返回给 WebClient
  • 服务二,可以将数据从WebClient保存到数据库并且不返回任何内容到WebClient

在 WebClient 中,我有一个名为 MessageBusClient 的类(与 RabbitMQ 一起使用)。我应该将所有请求发送到这个 ONE 类中的各种服务,还是应该将此客户端拆分为多个类(例如 MessageBusServiceOneClient、MessageBusServiceTwoClient),并以这种方式分离该逻辑并且没有意大利面条代码?

c# .net rabbitmq microservices
1个回答
0
投票

有一个类负责发送消息是相当正常的,并且会被认为是“单一的事情”。但它应该能够处理任何任意消息。如果它需要以某种方式以不同方式处理服务一和服务二的消息,您可能需要考虑制作两个单独的版本。

另一种思考方式是基础设施逻辑和业务逻辑。整理消息是基础设施。处理消息是业务逻辑。 Ofc,一个好的架构比这复杂得多。

© www.soinside.com 2019 - 2024. All rights reserved.