-1

我目前正在尝试将程序从单体架构重构为微服务架构,但我不确定如何进行:

该程序的目标是直截了当的,它接收原始数据(字节),将其拆分并将其转换为有意义的内容并将其附加回原始消息,以进行某种丰富。例如:

Input, message A:
{
    Id:
    Size:
    Data:
}
Output, message A:
{
    Id:
    Parsed Data: 
    {
        Field 1
        Field 2
    }
}

我将根据值大小添加需要不同的应用程序(不同的路由)。

这可以分为几层分裂和丰富。到目前为止,一切都发生在一个解决方案中,而且规模庞大且难以维护。所以我决定转向微服务架构。我从 Nameko 开始,它内置了对 rabbitmq 的支持,但过了一段时间我注意到了,我只使用@handle_event装饰器和调度程序来发布事件,而不是@rpc装饰器。

所以我有3个问题:

  1. 你认为微服务架构是最好的方式吗?因为我填充了更少的请求接收和更多的发布订阅流程,所以一个应用程序操作数据,然后将其发送到另一个相同剂量的应用程序。
  2. 在不浪费时间使用 Rabbitmq 的情况下实现这一目标的最佳实践和库是什么?
  3. 使用rabbitmq处理复杂(不仅仅是主题路由)路由的最佳方法是什么?
4

1 回答 1

0

这听起来更像是一个数据处理管道,而不是微服务架构。您可以使用 Nameko 构建一个,但您将重新发明轮子。

如果您正在构建数据管道,那么像apache beam这样的东西会更合适。

于 2019-02-18T11:40:14.683 回答