日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

适用于ActiveMQ 5.9的Apache Camel Broker组件

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适用于ActiveMQ 5.9的Apache Camel Broker组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將Apache Camel嵌入ActiveMQ代理可以為使用Camel的集成功能擴展消息代理提供極大的靈活性。 Apache Camel路由的另一個好處是,如果使用activemq組件 ,則可以避免遠程連接到ActiveMQ的序列化和網絡開銷。 關于Apache ActiveMQ真正偉大的事情之一是,它與Apache Camel一起運行得很好 。

但是,如果您想更改流經ActiveMQ消息代理本身的消息的行為,則將僅限于附帶的ActiveMQ Broker 攔截器集 –或開發自己的Broker插件 –然后將其作為罐子引入類路徑中為ActiveMQ經紀人。

但是,真正有用的是將Interceptors和Camel結合在一起,從而使使用Camel路由配置Broker Interceptor更加容易,而這正是我們即將與代理 Camel Component一起發布的ActiveMQ 5.9所做的。 您可以將camel.xml文件包含到ActiveMQ代理配置中 ,然后,如果您希望將所有發送到隊列的消息都發送到Queue并將其發布到Topic,并在此過程中更改其優先級,則可以執行以下操作:

<route id="setPriority"><from uri="broker:topic:test.broker.>"/><setHeader headerName="JMSPriority"><constant>9</constant></setHeader><to uri="broker:queue:test.broker.component.queue"/> </route>

需要注意的幾件事:

  • 代理程序組件僅在攔截器啟動時才將攔截器添加到代理程序中-因此,代理程序組件在使用前將不會向運行中的代理程序添加任何開銷-這樣開銷將變得很小。
  • 當代理已接收到消息時,但在消息被處理(持久化或路由到目的地)之前,您可以使用代理組件來攔截消息。
  • CamelExchange上的in消息既是Camel消息,也是JMS消息(通過ActiveMQ從Stomp / MQTT / AMQP等途徑路由的消息始終轉換為JMS消息)。
  • 您可以在目標上使用通配符來攔截來自與通配符匹配的目標的郵件。
  • 截取之后,您必須將消息顯式發送回代理組件–這允許您丟棄選擇消息(不發送)–或像上述情況一樣–將消息重新路由到其他目標。
  • 但是,有一個刻意的警告,您只能將消息發送到已被攔截的代理組件,即,從另一個組件(例如,文件)路由駱駝消息將導致錯誤。

在activemq-broker軟件包中添加了一些額外的類-在不使用JMX的情況下啟用正在運行的代理的視圖-并支持使用broker組件:

org.apache.activemq.broker.view.MessageBrokerView –提供檢索代理統計信息的方法,并從MessageBrokerView –您可以檢索特定目標的org.apache.activemq.broker.view.BrokerDestinationView 。 這意味著您可以通過執行以下操作來在代理內部添加靈活的路由-在目標隊列深度達到特定限制時路由消息:

<camelContext id="camel" trace="false" xmlns="http://camel.apache.org/schema/spring"><route id="routeAboveQueueLimitTest"><from uri="broker:queue:test.broker.queue"/><choice><when><spel>#{@destinationView.queueSize >= 100}</spel><to uri="broker:queue:test.broker.processLater"/></when><otherwise><to uri="broker:queue:test.broker.queue"/></otherwise></choice></route></camelContext><bean id="brokerView" class="org.apache.activemq.broker.view.MessageBrokerView"><constructor-arg value="testBroker"/></bean><bean id="destinationView" factory-bean="brokerView" factory-method="getDestinationView"><constructor-arg value="test.broker.component.route"/></bean>

這使用的是Camel Message Router模式-請注意在when子句中使用Spring表達式語言( spel )。

參考:來自JCG合作伙伴 Rob Davies的ActiveMQ 5.9的Apache Camel Broker組件,來自Open Source Integration博客上的Rob Davies 。

翻譯自: https://www.javacodegeeks.com/2013/09/apache-camel-broker-component-for-activemq-5-9.html

總結

以上是生活随笔為你收集整理的适用于ActiveMQ 5.9的Apache Camel Broker组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。