在我当前的项目中,我们正在实现一个webservice层,我们希望使用RabbitMQ来解耦这一层。最后,这给了我一个非常薄的webservice层。这样做的挑战在于,所有的are服务调用都是同步的。webservice层的调用者需要获得响应。
我想知道用RabbitMQ进行解耦是个好主意还是坏主意?
发布于 2012-03-15 23:03:59
如果您的web服务基于CQRS模式,其中您的更新/插入是针对查询单独处理的,那么您可以以一种解耦的方式使用Rabbit来处理插入/更新,以便web服务请求将包含要插入/更新的信息的消息丢弃到队列中,然后返回。这样,您就不需要等待数据库提交事务。然后,您将有一个单独的服务来使用这些消息,并进行适当的数据库插入/更新调用。
显然,您的查询仍必须与数据库直接交互才能返回信息。
至于这是一个好主意还是坏主意,这完全是主观的。如果您的数据库非常简单,并且插入/更新不需要明显的时间,那么您可能会以很少的净收益或没有净收益来引入复杂性。例如,您可以使用javascript对您的web服务进行异步调用,以处理帖子,从而为最终用户提供响应体验。
https://stackoverflow.com/questions/9715388
复制相似问题