我们正在实施Camel路由来处理服务请求。 我们要求对特定请求做出巨大响应。这种反应可能很大,可能会导致内存问题。 现在我们将响应写入文件,将该文件移动到外部ftp服务器,并将文件的名称和位置作为http响应返回。 我真正想做的是通过Camel中的http响应流式传输响应。不幸的是,我找不到任何关于如何做的文档/样本。
这是我们目前的实施:
.rest(BASE_URL_VERSION)
.get("/generic/xxxxxx").produces(MIME_MEDIA_TYPE_JSON)
.route()
.process(new ResponseBuilderProcessor()) // this creates the temp file
.to(uriOut) // this moves the file to the external ftp
.process(new AnswerProcessor()); // provides the response where the file location is mentioned
这可行吗?怎么样?
答案 0 :(得分:0)
考虑让您的服务异步
如果请求正确,请将请求视为已接受(http 202)&向客户端提供响应可用性的详细信息(可能在您提到的JMS队列或文件位置)。队列ID或文件位置可以作为响应发送。
客户端将在一段时间间隔后点击队列或文件位置。获得响应,如果它可用。