activemq网络桥接_ActiveMQ –经纪人网络解释–第3部分

activemq网络桥接

现在,我们已经在本博客系列的第1部分和第2 部分中了解了ActiveMQ网络连接器的基础,在第3部分中,我们将研究ActiveMQ如何平衡连接到代理网络的使用者。

介绍

当可以无序处理队列中的消息时通常使用并发使用者,通常可以提高消息吞吐量。 ActiveMQ代理以循环方式在使用者之间调度消息,以便在并发使用者之间平衡消息消耗,除非将使用者指定为独占 。

让我们看下面的示例,其中三个使用者同时处理队列foo.bar中的消息。 生产者排队60条消息,这些消息由三个消费者(每个20位)以循环方式处理。

并发消费者-新页面

在队列foo.bar上启动三个并发使用者

Ashwinis-MacBook-Pro:example akuntamukkala$ pwd
/Users/akuntamukkala/apache-activemq-5.8.0/example
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar -DparallelThreads=3 -Dmax=20

产生60条消息

Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar -Dmax=60

以下屏幕截图显示了3个使用者正在处理来自队列foo.bar的消息。 入队和出队60条消息。

broker-1-60msgs-concurrent-consumers

如下所示,每个使用者处理了20条消息。

经纪人-1-cc-60msgs

以下摘录自日志,显示消息被划分为三个使用者。

[Thread-3] Received: 'Message: 1 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-2] Received: 'Message: 0 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-1] Received: 'Message: 2 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-3] Received: 'Message: 4 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-2] Received: 'Message: 3 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-1] Received: 'Message: 5 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-3] Received: 'Message: 7 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-2] Received: 'Message: 6 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-1] Received: 'Message: 8 sent at: Tue Mar 04 13:46:53 IST 2014  ...' (length 1000)[Thread-3] Received: 'Message: 10 sent at: Tue Mar 04 13:46:53 IST 2014 ...' (length 1000)

既然我们已经看到了并发消费者在单个经纪人上的工作方式,那么现在我们将研究当消费者跨经纪人网络分布时它们如何工作。

本地与远程消费者

让我们借助下图所示的配置来探索ActiveMQ如何处理本地和远程使用者。

本地远程消费者

消费者1和消费者2分别使用来自Broker-1和Broker-2上的队列foo.bar的消息。 Broker-1建立了到Broker-2的网络连接器以转发队列消息。 生产者将消息放入Broker-1上的队列foo.bar中

让我们看看这个动作

  • 编辑Broker-1的配置/Users/akuntamukkala/apache-activemq-5.8.0/bridge-demo/broker-1/conf/activemq.xml并打开与Broker-2的网络连接器,然后重新启动Broker-1和Broker-2
<networkConnectors><networkConnectorname="T:broker1->broker2"uri="static:(tcp://localhost:61626)"duplex="false"decreaseNetworkConsumerPriority="false"networkTTL="2"dynamicOnly="true"><excludedDestinations><queue physicalName=">" /></excludedDestinations></networkConnector><networkConnectorname="Q:broker1->broker2"uri="static:(tcp://localhost:61626)"duplex="false"decreaseNetworkConsumerPriority="false"networkTTL="2"dynamicOnly="true"><excludedDestinations><topic physicalName=">" /></excludedDestinations></networkConnector></networkConnectors>
  • 启动本地消费者,消费者1
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar
  • 启动远程使用者Consumer-2
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61626 -Dtopic=false -Dsubject=foo.bar
  • 在Broker-1上启动生产者以排队100条消息
Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61616 -Dtopic=false -Dsubject=foo.bar -Dmax=100

屏幕截图显示了Broker-1的队列:

经纪人-1-cc-100ed

让我们看一下消费者,看看消息是如何被分离出来的。

broker-1-localvsremote-equal

您可能会注意到,ActiveMQ代理将消息均匀地分派给本地使用者,而不是远程使用者,从而给它们相同的优先级。

远程使用者Consumer-2仅距离代理1跳,其距离配置的networkTTL值2小。

这会导致路由选择欠佳,尤其是在连接了经纪人时,使得生产者和消费者之间可能有多个路由。 为了确保生产者和消费者之间的最短路径,最好将其分发给本地消费者,而不是偏远的消费者。

ActiveMQ提供了一种使用该属性在本地使用者和远程使用者之间配置优先级的方法
网络连接器上的reductionNetworkConsumerPriority。

默认情况下,此值为false,因此将本地和远程代理视为相同。

如果我们在更改了reduceNetworkConsumerPriority =“ true”之后重复上述步骤,那么我们发现本地消费者Consumer-1的优先级高于远程消费者Consumer-2,即距离中间商1的路程。

broker-1-localvsremote
ActiveMQ可以智能地找出消息生产者和消费者之间的代理网络中的最短路径。

请阅读以下链接,以进一步了解ActiveMQ的最佳路由。

  • http://fusesource.com/docs/esb/4.3/amq_clustering/Networks-OptimizingRoutes.htm l

到此系列的第3部分结束,我们看到了如何区分本地和远程使用者以帮助ActiveMQ确定消息产生者和使用者之间的最佳路径。

一如既往地欢迎您提出意见。

请继续关注第4部分,我们将讨论远程并发使用者的负载平衡…

翻译自: https://www.javacodegeeks.com/2014/04/activemq-network-of-brokers-explained-part-3.html

activemq网络桥接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/341187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Word样式的导入与导出

1 样式的介绍 样式&#xff0c;也就是Word中各级标题的格式。合理的设置样式模板&#xff0c;可以帮助更方便的进行文本编辑。 2 样式的导入 具体情形为将“文档标准模板.dotm”的内容应用于“新建Microsoft Word文档”。 按照图示进行操作 【 如果应用模板为文件内的样式…

word将一个文档的样式导入到另一个文档

一、背景 在word中编辑文档时&#xff0c;经常需要定义一个样式给特定格式的文本使用&#xff0c;如标题1&#xff0c;标题2等&#xff0c;而有时需要在一个新文档A中使用一个旧文档B中定义好的样式。 二、操作步骤 1、打开旧文档B&#xff0c;选择上方标签栏的"样式&quo…

Spring Boot应用程序浪费了内存

内存是当今世界上被广泛浪费的资源之一。 由于编程效率低下&#xff0c;令人吃惊的&#xff08;有时是“令人震惊的”&#xff09;内存浪费被浪费了。 我们看到这种模式在多个企业应用程序中重复出现。 为了证明这种情况&#xff0c;我们进行了一项小型研究。 我们分析了著名的…

Win10灵活使用快速访问

I 快速访问视图 位置在winE 左侧窗口&#xff0c;点击可快速到达某个特定的文件夹。作用类似于快捷方式&#xff0c;操作简单。 II 关闭自动添加 默认是显示经常使用的文件夹。这使得窗口内文件夹较乱。 通过以下设置&#xff0c;关闭自动显示 1. 2.把框内√去掉 III 固定文…

Win10搜索文件后新窗口打开

I 问题描述 windows搜索后&#xff0c;对”文件“右击只有”打开文件位置“&#xff1b;对”文件夹“右击只有”在新窗口中打开“和”打开文件夹位置“ 1.如果点击”打开文件位置“ 或 ”打开文件夹位置“后&#xff0c;搜索的窗口页面就不见了&#xff1b;直接跳转到”那个“…

activemq网络桥接_ActiveMQ –经纪人网络解释–第2部分

activemq网络桥接在此博客中&#xff0c;我们将看到双工网络连接器如何工作。 在上一部分中&#xff0c;我们从broker-1和broker-2创建了一个网络连接器。 我们能够看到&#xff0c;当代理2上有一个使用者使用队列“ foo.bar”时&#xff0c;代理1上的队列“ foo.bar”的消息如…

Win10鼠标拖拽移动文件

拖动操作共有三种响应模式&#xff0c;分别是&#xff1a;移动、复制、创建快捷方式。 在默认情况下&#xff0c; 纯拖动操作——同盘移动&#xff0c;异盘复制拖动时按住shift键——移动拖动时按住ctrl键——复制拖动时按住alt键 或 同时按住ctrl和shift键——创建快捷方式

Apache Lucene中的并发查询执行

Apache Lucene是一个出色的并发纯Java搜索引擎&#xff0c;如果您愿意&#xff0c;它可以轻松地使服务器上的可用CPU或IO资源饱和。 “典型” Lucene应用程序的并发模型在搜索时每个查询一个线程&#xff0c;但是您知道Lucene还可以使用多个线程同时执行一个查询以大大减少最慢…

Windows设置自己的程序开机自动启动

Windows系统想要快速设置开机自动启动某个程序&#xff0c;可以使用以下方法设置&#xff1a; 1.找到启动文件夹 CtrlR 打开运行&#xff0c;输入shell:startup&#xff0c;回车,找到启动文件夹 2.拷贝需要开机启动的程序的快捷方式到此文件夹即可。 3.打开任务管理器-启动查…

Citavi中文件管理

目录 I 文献相对应的PDF文件相关操作 1 打开PDF所在位置 2 直接重命名PDF文献 注&#xff1a;设置角标方式 II 阅读文献相关的文件的添加与删除 1 添加 2 删除 III PPT CAJ文件的添加 I 文献相对应的PDF文件相关操作 PDF文件可直接拉入文献框进行导入 1 打开PDF所在位置…

coldfusion_我从ColdFusion迁移到Java开发

coldfusion尽管我在大学和研究生的整个职业生涯中都研究和尝试了不同的开发技术和工具&#xff0c;但我的全职职业生涯始于Adobe ColdFusion的开发。 从学校毕业后&#xff0c;使用技术解决现实世界中的业务问题本身就是一个挑战。 由于其相当简单的性质&#xff0c;ColdFusio…

Citavi插件的安装和使用以及注意事项

【文章转载于知乎大神&#xff1a;Citavi插件的安装和使用以及注意事项 - 知乎】 没有软件是十全十美的&#xff0c;基础功能够用&#xff0c;附加功能以插件、脚本的方式来支持是个不错的思路。 Citavi提供了自定义宏和插件的方式&#xff0c;来满足更为复杂的格式修整和文献…

Java 9中的HTTP / 2支持简介

1.简介 IETF流媒体小组于2015年&#xff08;即HTTP / 1.1发布后的16年&#xff09; 批准了HTTP / 2协议。 HTTP / 2有望降低延迟&#xff0c;并且使许多替代方法变得过时&#xff0c;而这些替代方法是HTTP / 1.1所必需的&#xff0c;以便能够满足当今的响应时间要求。 在本文中…

MiUI特色功能设置总结

一 常用设置 【转载于知乎https://www.zhihu.com/question/514792652/answer/2377622710】 1 自动优化系统 其实在手机开发者模式设置中&#xff0c;有2个地方我们需要设置&#xff0c;设置了不仅可以让手机运行更流畅&#xff0c;而且还能帮我们自动优化系统。 &#xff0…

potplayer怎么设置无边框播放,播放时隐藏进度条

potplayer默认情况下播放视频时会显示边框&#xff0c;那么怎么设置无边框播放呢?下面小编就为大家详细的介绍一下&#xff0c;大家感兴趣的话就一起来了解下吧! potplayer怎么设置无边框播放?potplayer设置无边框播放方法 1、点击左上角的potplayer 2、在下拉菜单中点击选项…

蓝牙播放Stereo和Hands-Free AG Audio两种模式的区别?

当使用蓝牙耳机时&#xff0c;发现电脑的播放设备显示了两种模式&#xff08;如下图所示&#xff09;&#xff0c;Stereo模式下声音正常&#xff0c;而调到Hands-Free AG Audio模式下声音频带窄了很多且音质差&#xff0c;典型的电话音&#xff0c;下面具体说说这两种模式的区别…

office工作日志文件_风暴事件处理器–每个工作者的GC日志文件

office工作日志文件在过去的三个月中&#xff0c;我正在与一个新团队合作&#xff0c;为电信领域的大数据分析构建产品。 Storm事件处理器是我们使用的主要框架之一&#xff0c;它确实很棒。 您可以阅读其官方文档中的更多详细信息&#xff08;已改进&#xff09;。 Storm使用…

workrave使用方法

一 模式介绍 阅读模式&#xff1a; 不论电脑什么状态&#xff0c;倒计时一直进行 普通模式&#xff1a; 当检测到电脑没有任何操作&#xff0c;比如打字与移动鼠标&#xff0c;则暂停倒计时。如果长时间没有操作&#xff0c;则默认进入休息状态&#xff0c;下次移动鼠标&…

OpenJDK织机和结构化并发

Project Loom是Hotspot Group赞助的项目之一&#xff0c;旨在向JAVA世界提供高吞吐量和轻量级的并发模型。 在撰写本文时&#xff0c;Loom项目仍处于积极开发中&#xff0c;其API可能会更改。 为什么要织机&#xff1f; 每个新项目可能会出现的第一个问题是为什么&#xff1f;…

在已打开的程序上打开新的窗口

在支持多开的程序上面按shift加鼠标左键&#xff0c;则打开程序新的窗口