在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
从历史上看, Apache ActiveMQ消息代理最初是在大型消息以MB为单位而不是GB的情况下创建的,就像您今天所做的那样。
下一代代理Apache ActiveMQ Artemis(或仅是Artemis)则不是这种情况,后者对大消息有更好的支持。
因此,到了大约时间,骆驼团队终于有一些时间来进行此工作,以确保骆驼与Artemis和大型邮件一起正常工作。 这项工作已在本周末完成,我们提供了一个示例来证明这一点。
该示例使用以下两条小路线运行Camel:
第一种路由只是将文件路由到消息代理上名为data的队列。 第二条路由则相反,即从数据队列到文件的路由。
注意第二条路线,因为它已经打开了Camel的流缓存 。 这确保了Camel将以一种方式处理大型流负载,其中Camel可以将大流自动后台处理到临时磁盘空间以避免占用内存。 Apache Camel中的流缓存是完全可配置的,您可以基于有效负载大小,JVM中剩余的内存等设置阈值,以触发何时后台处理到磁盘。 但是,默认设置通常就足够了。
然后,骆驼使用JMS组件与ActiveMQ Artemis代理集成,您可以如下设置:
这是所有标准配置(您还应该考虑设置连接池)。
该示例需要在JVM中单独运行ActiveMQ Artemis消息代理,然后使用较低的内存设置(例如128mb或256mb等)启动Camel JVM,这可以通过Maven完成:
export MAVEN_OPTS="-Xmx256m"
然后您通过Maven运行Camel
mvn camel:run
当应用程序运行时,您可以将大文件复制到target / inbox目录,然后将这些大消息流式传输到Artemis代理,然后再次返回到Camel,然后将其保存到target / outbox目录。
例如,我通过复制一个1.6gb的docker VM文件而使这很累,而Camel将记录以下内容:
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并监视了内存使用情况,如下图所示:
该图显示堆内存在130mb左右达到峰值,而在GC之后,堆内存回落到50mb左右。 JVM的最大配置为256mb。
您可以找到有关示例的详细逐步说明,以及如何精确运行示例,因此可以自己尝试。 的
该示例是即将发布的Apache Camel 2.21发行版的一部分,其中对camel-jms组件进行了改进,以支持javax.jms.StreamMessage类型,并对ActiveMQ Artemis进行了特殊优化,如本示例所示。
PS:该示例可以用多种方式编写,但是我们没有创建另一个基于Spring Boot的示例,而是选择使用纯XML。 最终,骆驼不在乎,您可以随心所欲地实现和使用骆驼。
翻译自: https://www.javacodegeeks.com/2017/10/working-large-messages-using-apache-camel-activemq-artemis-improved-upcoming-camel-2-21-release.html
在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...相关推荐
- apache.camel_在即将发布的Camel 2.21版本中改进了使用Apache Camel和ActiveMQ Artemis处理大型消息的功能...
apache.camel 从历史上看, Apache ActiveMQ消息代理最初是在大型消息以MB为单位而不是GB的情况下创建的,就像您今天所做的那样. 下一代代理Apache ActiveMQ A ...
- Apache Camel 2.20发布–新增功能
Apache Camel 2.20已于今天发布,并且像往常一样,我受命撰写有关此新发行版及其亮点的博客. 该版本具有以下重点. 1)Java 9技术预览支持 我们已经开始支持Java 9的工作,此版本 ...
- 即将发布的 Apache Spark 3.2 将内置 Pandas API
在即将发布的 Apache Spark™ 3.2 版本中 pandas API 将会成为其中的一部分.Pandas 是一个强大.灵活的库,并已迅速发展成为标准的数据科学库之一.现在,pandas 的用 ...
- 脉冲星 5 月脉动 | Pulsar 2.3.2 即将发布、2.4.0 预览、Pulsar 与 Camel 集成
作者:zymap + Anonymitaet 审校:Sijie + Jennifer 编辑:Susan + Anonymitaet 阅读本文需要约 10 分钟. 本月亮点速览 产品动态 Pulsar ...
- 【优麒麟】22.04 LTS版本即将发布,终极预告来袭,你准备好了吗?
优麒麟社区自 2012 年创立到现在,已走过 10 个年头,在这 10 年里,优麒麟社区一直在不断打磨自己的技术,希望给大家带来更好的使用体验.在这期间我们的技术成果也得到了国内外社区的认可. 终于在 ...
- Kubernetes v1.23即将发布,有哪些重磅更新?
Kubernetes 1.23即将发布,此版本带来了 45 项增强功能,与 Kubernetes 1.22 中的 56 项和 Kubernetes 1.21 中的 50 项相近.在这 45 项增强功能 ...
- apache camel_令人印象深刻的第一个Apache Camel版本
apache camel 在准备下周的CamelOne会议时,我花了一些时间回顾一下Apache Camel项目的历史. 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 . A ...
- 令人印象深刻的第一个Apache Camel版本
为了准备下周的CamelOne会议,我花了一些时间回顾一下Apache Camel项目的历史. 因此,除其他外,我了解了Apache Camel的第一个正式1.0版本 . Apache Camel 1 ...
- FL STUDIO水果21版本新主题、插件、功能介绍
大家常说的"DJ音乐"实际应该指的是EDM音乐,现在市面上的宿主软件几乎都可以制作EDM音乐.DJ音乐制作要学多久?可长可短,想要学精一门艺术和技术至少需要一两年时间.FL Stu ...
最新文章
- 微指令地址的形成方式_交换那些事儿 | 基础维护篇 IPv6地址分类及配置方法
- Winform DataGridView列的单元格中动态添加图片和文字
- 人工智能取代医生AI画出鼻咽癌放疗靶区,准确性与医生相当
- 神策数据司沛:加速车企数字化转型,搭建高质量用户数据平台实战
- 详解 WSUS 部署
- 网络上的两台计算机如何互相访问,怎么样使两台电脑互相访问?
- 京东五星电器送扫地机器人_家电也流行“套餐”,京东五星电器吹响国庆家装“集结号”...
- MATLAB强化学习实战(十) 多智能体的路径跟随控制
- Word排版之页眉页脚设置
- css动画怎么暂停,纯CSS代码实现动画的暂停与播放
- CSS / 清除浮动+切图+属性书写顺序+页面布局思路
- Hinton最新演讲:前向-前向神经网络训练算法
- 基于NMF的推荐系统实例
- 程序员常用英语词汇(018)
- pdf的下载和在线预览
- 从零维到十维空间如何在纸上用手绘出来
- vue大屏(驾驶舱)实现数字滚动
- 2022版 的IDEA创建一个maven项目(超详细)
- interrupt和park的区别
- 最新的WidowsXP快捷键操作