[英]Camel as a JMS client
我正在使用Camel開發客戶端/服務器請求/回復系統。
客戶端和服務器使用兩個JMS隊列進行通信:請求隊列和響應隊列。
服務器端具有駱駝路由,該駱駝路由消耗來自請求隊列的JMS消息並同時處理消息。 使用響應隊列將響應發送回客戶端。
客戶端將消息發送到JMS隊列,然后等待響應。 我有兩個問題:
客戶端實際上是一個將由其他應用程序使用的庫。 我也想在客戶端使用Camel,但不知道如何將Camel用作“函數”,即在我擁有代碼的某個時候,我需要做“將該對象發送到此駱駝路線”。 我怎樣才能做到這一點?
駱駝是否有使用兩個隊列處理請求/答復的標准方法?
非常感謝你。
使用CamelContext中的ProducerTemplate 。 它要求您在客戶端的某個地方保持駝峰環境。
您可以執行以下操作: producerTemplate.requestBody(myPayload,"jms:queue:whatever");
駱駝可以使用幾種不同的方式處理請求回復。 使用顯式答復隊列(默認情況下不使用臨時隊列),您可以使用更快的獨占模式: jms:queue:request.queue?replyTo=client1.replies&replyToType=Exclusive
但每個客戶端需要唯一的隊列。 另一種選擇是為所有客戶端共享隊列。 URI如下所示: activemq:queue:request.queue?replyTo=shared.replies
。 請注意:共享回復隊列將使用JMS選擇器為每個客戶端選擇消息,這將降低性能和往返延遲。
對於問題1,可以使用可以調用駱駝路線的駱駝生產者模板選項。 問題2的答案是肯定的,您可以參考http://camel.apache.org/request-reply.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.