Design patterns 驼峰RabbitMQ请求-响应模式示例
我正在寻找一个使用Camel-RabbitMQ请求-响应模式的示例代码 我的用例: -请求消息在RabbitMQ队列中被释放 -驼峰路由使用消息,调用外部Web服务,并根据消息的reply to属性回复响应 我还使用Spring AMQP实现了这个用例,但我也想使用Camel RabbitMQ实现它 驼峰文档: 谢谢你的帮助 阿诺我找到了解决方案: Camel RabbitMQ对Functionality的回复将出现在下一个Camel版本2.15中 比照Design patterns 驼峰RabbitMQ请求-响应模式示例,design-patterns,request,apache-camel,rabbitmq,response,Design Patterns,Request,Apache Camel,Rabbitmq,Response,我正在寻找一个使用Camel-RabbitMQ请求-响应模式的示例代码 我的用例: -请求消息在RabbitMQ队列中被释放 -驼峰路由使用消息,调用外部Web服务,并根据消息的reply to属性回复响应 我还使用Spring AMQP实现了这个用例,但我也想使用Camel RabbitMQ实现它 驼峰文档: 谢谢你的帮助 阿诺我找到了解决方案: Camel RabbitMQ对Functionality的回复将出现在下一个Camel版本2.15中 比照 Arnaud这是HTTP代理的一个简单示
Arnaud这是HTTP代理的一个简单示例。HTTP请求通过Rabbit MQ,HTTP响应返回到Rabbit MQ 在camel 2.17.1 camel核心、camel-netty4-http和camel-rabbitmq上编写的示例 电话示例: curl-H proxy_url:127.0.0.1
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("netty4-http:localhost:80").
to("rabbitmq://localhost:5672/async");
from("rabbitmq://localhost:5672/async").
process(exchange -> {
// for return not only 200 HTTP STATUS
String techParams = "throwExceptionOnFailure=false";
String proxyUrl = (String) exchange.getIn().getHeader("proxy_url");
proxyUrl = proxyUrl.contains("?") && proxyUrl.contains("=")
? proxyUrl + "&" + techParams : proxyUrl + "?" + techParams;
exchange.getIn().setHeader("proxy_url", proxyUrl);
exchange.setProperty(RabbitMQConstants.CORRELATIONID,
exchange.getIn().getHeader(RabbitMQConstants.CORRELATIONID));
}).
toD("netty4-http:${header.proxy_url}").
process(exchange -> {
exchange.getIn().setHeader(RabbitMQConstants.CORRELATIONID, exchange.getProperty(RabbitMQConstants.CORRELATIONID));
});
}
});