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

Java 在请求负载更大的情况下,如何使用消息传递?,java,jms,message-queue,Java,Jms,Message Queue,我在一家跨国软件公司参加面试,面试官问了我一个棘手的问题。 他说,假设你有一个包含用户和订单的系统,并且有用户和订单Rest服务。 如果用户服务已经缩放,而订单服务尚未缩放,那么如何管理订单服务上的负载。因为用户服务正在向订单服务发送大量请求以获取订单。 有谁能给我一套技术来解决这个问题吗。 我认为可以选择使用消息队列,但是如何选择呢?或者可能是。。。。。。或者两者都有。。。。请帮忙 我不知道这个问题的背景,也不知道它是否与信息有关 你可以从这个场景中得到一些东西。我假设当前的集成是通过API实

我在一家跨国软件公司参加面试,面试官问了我一个棘手的问题。 他说,假设你有一个包含用户和订单的系统,并且有用户和订单Rest服务。 如果用户服务已经缩放,而订单服务尚未缩放,那么如何管理订单服务上的负载。因为用户服务正在向订单服务发送大量请求以获取订单。 有谁能给我一套技术来解决这个问题吗。
我认为可以选择使用消息队列,但是如何选择呢?或者可能是。。。。。。或者两者都有。。。。请帮忙

我不知道这个问题的背景,也不知道它是否与信息有关

你可以从这个场景中得到一些东西。我假设当前的集成是通过API实现的

  • 弹性:如果您正在使用从用户服务到订单服务的同步调用。。。最后一个可以重载。在这里,您可以在用户服务中使用断路器,以避免级联故障
  • 弹性/性能:另一种处理背压的方法是反应式编程。看看Spring Reactor(一个例子)
  • 弹性/性能:您可以从API集成模式移动到消息传递集成。这样,您的用户服务和订单服务可以异步通信。(例如发布者/订阅者模式)
同样,可以做很多事情(这些只是少数),但选择应该根据场景而定