【问题标题】:Get using ActiveMQ as a load balancer使用 ActiveMQ 作为负载均衡器
【发布时间】:2013-09-14 20:24:34
【问题描述】:

我正在尝试使用 ActiveMQ 作为外观来隐藏底层负载平衡和分布式环境。例如,假设我们有 3 个相同服务的实例,在不同的服务器上运行。 ActiveMQ 队列对应用程序的其余部分隐藏了这一点。此外,使用代理网络,我们能够消除任何单点故障。

我想知道,我们如何在底层服务上执行像 Get 这样简单的操作?

连接到此环境的客户端不知道队列中有多个实际服务实例。客户端直接与队列交互。因此,在直接处理队列,而不是底层服务时,客户端如何进行简单的Get呢?

谢谢!

【问题讨论】:

  • 没有单点故障很重要。
  • 请注意,我不是在尝试从队列中获取消息,而是在尝试对底层服务实现执行 Get。
  • 什么是服务的“获取”?请举个例子。
  • @user2612462 请查看此问题并期待您的帮助。 stackoverflow.com/questions/19706788/… 。感谢您的宝贵时间。

标签: rest soap get jms activemq


【解决方案1】:

您的服务正在使用异步接口。因此,您应该在 REST API 中执行相同的操作。

  1. @PUT@POST 方法中向服务发送消息。此方法立即返回。
  2. 服务开始处理消息
  3. @GET 方法中检查响应队列中的消息。还没有消息,所以它返回“尚未完成”
  4. 服务已完成,它在响应队列中发送消息
  5. 现在在@GET 方法中,您可以读取响应消息,并将其返回给客户端

相关:JMS message receiver filtering by JMSCorrelationID

【讨论】:

  • 谢谢,澄清一下,当请求初始'@GET'时,我们是否应该向封装'@GET'的队列'@POST'一条消息?
  • 如果我们像上面那样封装,我想我们需要在传递给底层服务之前拦截消息,所以我们可以提取'@GET'来将它提供给底层服务。对吗?
  • 对不起,我不明白你的 cmets。您应该在问题中详细描述您的情况。
猜你喜欢
  • 2015-02-09
  • 1970-01-01
  • 2021-12-07
  • 2012-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
相关资源
最近更新 更多