Camel 从 activemq 路由到 rest 端点

Camel routes from activemq to rest endpoint

我正在尝试使用 Spring Boot 1.5.2.RELEASE + Camel (Spring Boot starter) 2.19.2 来监听 ActiveMQ 队列然后 post发送到休息端点 URL(POST 方法)的消息作为其主体。实现这一目标的最佳方法是什么? 我收集了一些信息,并试图将它们联系在一起,但有点困惑。

这是我为 Camel Rest DSL 收集的信息,我不太确定下面的 camel 是否正在通过它创建这些休息服务,或者它只是一个已经暴露的端点,在我的例子中它是一个已经暴露的端点

rest("/basePath")
  post("/someEndpoint").to("direct:restEndpoint")

使用上面的是我为 ActiveMQ 收集的,我不太确定是否正确

from("activemq:queue:<queue_name>").to("direct:restEndpoint")

但是,我不太确定如何监听 ActiveMQ 队列中的新消息,或者这是 Camel 默认情况下总是做的事情吗?此外,我需要将消息作为 post 正文传递到我的休息端点。我还看到了一些对 camel-http4 和 camel-http 的引用,我完全糊涂了。

如有任何帮助,我们将不胜感激。

开始使用 Camel 时,有些困惑很常见,但您的最终解决方案将类似于:

from("activemq:queue:my-route")
  .process(/* change the in/out messages if you need to */)
  .to("http4://your-endpoint.com");

不要尝试简单地 copy/paste 此代码,直到它起作用为止。我的 Camel 经验法则是:始终阅读组件文档并尝试在您的软件中使用它。对于你的情况,我建议:

  1. 阅读ActiveMQ component docs and try reading from ActiveMQ / writing to a Log
  2. Timer and send to your Rest endpoint using HTTP4 Component;
  3. 生成一些输入

您的第一条路线对于简单的事情会花费一些时间,但您会很快上手。