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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...

發(fā)布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

從歷史上看, Apache ActiveMQ消息代理最初是在大型消息以MB為單位而不是GB的情況下創(chuàng)建的,就像您今天所做的那樣。

下一代代理Apache ActiveMQ Artemis(或僅是Artemis)則不是這種情況,后者對大消息有更好的支持。

因此,到了大約時間,駱駝團隊終于有一些時間來進行此工作,以確保駱駝與Artemis和大型郵件一起正常工作。 這項工作已在本周末完成,我們提供了一個示例來證明這一點。

該示例使用以下兩條小路線運行Camel:

第一種路由只是將文件路由到消息代理上名為data的隊列。 第二條路由則相反,即從數(shù)據(jù)隊列到文件的路由。

注意第二條路線,因為它已經(jīng)打開了Camel的流緩存 。 這確保了Camel將以一種方式處理大型流負載,其中Camel可以將大流自動后臺處理到臨時磁盤空間以避免占用內(nèi)存。 Apache Camel中的流緩存是完全可配置的,您可以基于有效負載大小,JVM中剩余的內(nèi)存等設(shè)置閾值,以觸發(fā)何時后臺處理到磁盤。 但是,默認設(shè)置通常就足夠了。

然后,駱駝使用JMS組件與ActiveMQ Artemis代理集成,您可以如下設(shè)置:

這是所有標準配置(您還應(yīng)該考慮設(shè)置連接池)。

該示例需要在JVM中單獨運行ActiveMQ Artemis消息代理,然后使用較低的內(nèi)存設(shè)置(例如128mb或256mb等)啟動Camel JVM,這可以通過Maven完成:

export MAVEN_OPTS="-Xmx256m"

然后您通過Maven運行Camel

mvn camel:run

當應(yīng)用程序運行時,您可以將大文件復制到target / inbox目錄,然后將這些大消息流式傳輸?shù)紸rtemis代理,然后再次返回到Camel,然后將其保存到target / outbox目錄。

例如,我通過復制一個1.6gb的docker VM文件而使這很累,而Camel將記錄以下內(nèi)容:

INFO? Sending file disk.vmdk to ArtemisINFO? Finish sending file to ArtemisINFO? Received data from ArtemisINFO? Finish saving data from Artemis as file

我們可以看到文件再次被保存,其正確大小也為1.6gb

$ ls -lh target/outbox/total 3417600-rw-r--r--? 1 davsclaus? staff? ?1.6G Oct 22 14:39 disk.vmdk

我將jconsole連接到正在運行的Camel JVM并監(jiān)視了內(nèi)存使用情況,如下圖所示:

該圖顯示堆內(nèi)存在130mb左右達到峰值,而在GC之后,堆內(nèi)存回落到50mb左右。 JVM的最大配置為256mb。

您可以找到有關(guān)示例的詳細逐步說明,以及如何精確運行示例,因此可以自己嘗試。 的
該示例是即將發(fā)布的Apache Camel 2.21發(fā)行版的一部分,其中對camel-jms組件進行了改進,以支持javax.jms.StreamMessage類型,并對ActiveMQ Artemis進行了特殊優(yōu)化,如本示例所示。

PS:該示例可以用多種方式編寫,但是我們沒有創(chuàng)建另一個基于Spring Boot的示例,而是選擇使用純XML。 最終,駱駝不在乎,您可以隨心所欲地實現(xiàn)和使用駱駝。

翻譯自: https://www.javacodegeeks.com/2017/10/working-large-messages-using-apache-camel-activemq-artemis-improved-upcoming-camel-2-21-release.html

總結(jié)

以上是生活随笔為你收集整理的在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。