在请求负载更多的情况下如何使用消息传递?

时间:2019-07-10 05:12:31

标签: java jms message-queue

我出现在一家跨国公司软件公司中接受采访,采访者问了我一个棘手的问题。 他说,假设您有一个包含用户及其订单的系统,并且有用户订单休息服务。 如果已经缩放用户服务而尚未缩放订单服务,则如何管理订单服务上的负载。由于用户服务正在向订单服务发送大量请求以获取订单。 谁能给我一个技术堆栈来解决这个问题。 我认为可以使用消息传递队列,但是如何呢?或可能正在穿线......或两者都....请帮助!

1 个答案:

答案 0 :(得分:1)

我不知道问题的背景以及它是否与消息传递有关。

在这种情况下,您可以采取一些措施。我将假定当前的集成是通过API实现的。

  • 弹性:如果您正在使用从用户服务到订单服务的同步调用,则最后一个可能会过载。在这里,您可以在用户服务中使用断路器来避免级联故障。
  • 弹性/性能:处理反压的另一种方法是反应式编程。看一下Spring Reactor(一个示例)。
  • 弹性/性能:您可以从API集成架构转换为消息传递集成。这样,您的用户服务和订单服务可以以异步方式进行通信。 (例如发布者/订阅者模式)。

同样,可以完成很多事情(仅是少数几件事),但是选择应该基于场景。