我目前正在尝试将程序从单体架构重构为微服务架构,但我不确定如何进行:
该程序的目标是直截了当的,它接收原始数据(字节),将其拆分并将其转换为有意义的内容并将其附加回原始消息,以进行某种丰富。例如:
Input, message A:
{
Id:
Size:
Data:
}
Output, message A:
{
Id:
Parsed Data:
{
Field 1
Field 2
}
}
我将根据值大小添加需要不同的应用程序(不同的路由)。
这可以分为几层分裂和丰富。到目前为止,一切都发生在一个解决方案中,而且规模庞大且难以维护。所以我决定转向微服务架构。我从 Nameko 开始,它内置了对 rabbitmq 的支持,但过了一段时间我注意到了,我只使用@handle_event
装饰器和调度程序来发布事件,而不是@rpc
装饰器。
所以我有3个问题:
- 你认为微服务架构是最好的方式吗?因为我填充了更少的请求接收和更多的发布订阅流程,所以一个应用程序操作数据,然后将其发送到另一个相同剂量的应用程序。
- 在不浪费时间使用 Rabbitmq 的情况下实现这一目标的最佳实践和库是什么?
- 使用rabbitmq处理复杂(不仅仅是主题路由)路由的最佳方法是什么?