在开发后端组件时,我需要决定这些组件将如何交互和相互通信。特别是,我需要决定使用(RESTful、微)Web 服务与消息代理(例如 RabbitMQ)是否更好。是否有某些标准可以帮助决定对每个组件使用 Web 服务还是使用消息传递?
最佳答案
Eranda 在他的回答中涵盖了其中的一些内容,但我认为其中三个关键驱动因素是:
可以使用异步消息传递基础结构进行请求-响应类型的交互,但它显着增加了复杂性,因此通常请求-响应类型的交互(即发送方是否需要从接收方返回一些数据)更容易建模为 RPC/REST 交互。
如果您的交互可以是异步的,那么可以使用 REST 交互来实现这一点,但如果您使用即发即忘的消息类型交互,它可能会更好地扩展。
如果信息的提供者不关心谁在消费信息,那么异步消息交互也将更加合适。信息提供者可以发布信息,而该信息的新消费者可以稍后添加到系统中,而无需更改提供者。
关于web-services - 如何决定使用消息传递(例如 RabbitMQ)还是使用 Web 服务进行后端组件交互/通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825744/