1
我的REST應用程序將數據發佈到rabbitMQ上的隊列(Q1)。還有一個單獨的應用程序將從Q1讀取數據,處理數據並將結果返回給Q2。我的應用程序將讀取Q2的數據並返回結果。許多客戶端將使用這兩個隊列,所以我生成一個UUID並將其設置在標題中,以便我可以在Q2(響應主題)上進行監聽。然後我會查詢每個傳入的消息,並將頭中的傳入UUID與我在發佈到Q1時生成的UUID進行匹配。駱駝在同一路線建設者的不同路線上交換
from("direct:test")
.choice().when(isValid)
.bean(FOOProcessor.class, "setFooQuery")
.to(FOO_REQUEST_QUEUE).log(LoggingLevel.INFO, "body=${in.body}")
.otherwise()
.setBody(constant("error"))
.setHeader(Exchange.HTTP_RESPONSE_CODE, constant(400)).log(LoggingLevel.INFO, "body=${in.body}")
.to("direct:error");
from(FOO_RESPONSE_QUEUE)
.unmarshal(new JacksonDataFormat(JsonNode.class))
.bean(FooProcessor.class, "setFooResponse")
.to("direct:end");
from("direct:error").log(LoggingLevel.DEBUG, "end");
from("direct:end").log(LoggingLevel.DEBUG, "end");
麻煩的是2「from」語句 - 它們創建分離駱駝交換/上下文,我無法獲得原始UUID。有什麼建議麼?