Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 驼峰RabbitMQ请求-响应模式示例_Design Patterns_Request_Apache Camel_Rabbitmq_Response - Fatal编程技术网

Design patterns 驼峰RabbitMQ请求-响应模式示例

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代理的一个简单示

我正在寻找一个使用Camel-RabbitMQ请求-响应模式的示例代码

我的用例: -请求消息在RabbitMQ队列中被释放 -驼峰路由使用消息,调用外部Web服务,并根据消息的reply to属性回复响应

我还使用Spring AMQP实现了这个用例,但我也想使用Camel RabbitMQ实现它

驼峰文档:

谢谢你的帮助

阿诺

我找到了解决方案:

Camel RabbitMQ对Functionality的回复将出现在下一个Camel版本2.15中

比照


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));
                    });
        }

    });