【发布时间】:2018-01-30 07:51:12
【问题描述】:
我正在尝试使用 Spring Boot 1.5.2.RELEASE + Camel (Spring Boot starter) 2.19.2 来侦听 ActiveMQ 队列,然后将消息作为其主体发布到休息端点 URL(POST 方法)。实现这一目标的最佳方法是什么? 我收集了一些信息,并试图将它们联系在一起,但有点困惑。
这是我为 Camel Rest DSL 收集的内容,我不太确定下面的骆驼是通过这个创建这些休息服务还是它只是一个已经公开的端点,在我的情况下它是一个已经公开的端点
rest("/basePath")
post("/someEndpoint").to("direct:restEndpoint")
使用以上是我为 ActiveMQ 收集的内容,我不太确定是否正确
from("activemq:queue:<queue_name>").to("direct:restEndpoint")
但是,我不太确定如何收听 ActiveMQ 队列中的新消息,还是 Camel 默认总是这样做的?此外,我需要将消息作为帖子正文传递给我的休息端点。我还看到了一些对 camel-http4 和 camel-http 的引用,我完全糊涂了。
任何帮助将不胜感激。
【问题讨论】:
-
既然你刚刚开始,我建议不要一次做很多事情,你正在做的事情。忘记 REST,只关注从队列中读取。让它发挥作用。一旦完成,移动到下一个和下一个。每个步骤本身都有许多参数和选项需要配置。熟悉这些,然后建立你的路线。您的大部分问题都在文档中说明,因此您需要阅读。
-
查看内容丰富器 EIP 以从队列/骆驼端点进行按需轮询 - 您可以使用
pollEnrich然后注意队列中是否没有消息,然后使用超时什么的。 -
另外你把事情搞混了。 REST 服务在某些 HTTP 客户端调用时触发 - 而不是在新消息到达 JMS 队列时触发。
-
我不确定你是否理解我想要实现的目标,我正在尝试轮询新消息并触发 HTTP 调用(休息服务),所以基本上我的骆驼路线将充当客户在这里。
标签: spring-boot apache-camel activemq camel-http