为高并发程序部署ActiveMQ

使用docker部署activemq docker的安装就不再说了,看一下阿里云上的这篇文章吧 docker安装看这里 1、使用命令搜索activemq docker search activemq 这个列表是搜素出来的镜像,这里我选择的第二个下载 2、下载镜像 docker pull docker.io/rmohr/activemq 因为我已经下载完了,所以和第一次下载的不一样 3、创建并启动容器 ... 阅读详情
为高并发程序部署ActiveMQ,
单个代理需要处理成千上万的连接和消息队列.
默认情况下,ActiveMQ被设计成尽可高效的传输消息以确保低延迟和良好的性能.
但是,你也可以进行一些配置使的ActiveMQ代理可以同时处理大量并发的连接以及大量的消息队列.

默认情况下,ActiveMQ使用阻塞IO来处理传输连接,这种方式为每一个连接分配一个线程.你可以为ActiveMQ代理使用非阻塞IO(同时客户端可以使用默认的传输)以减少线程的使用.可以在ActiveMQ的配置文件中通过传输连接器配置非阻塞IO.下面的是配置非阻塞IO的示例:
代码:配置NIO传输连接器
<broker>  <transportConnectors>  <transportConnector name="nio" uri="nio://localhost:61616"/> </<transportConnectors> </broker> 

除了为每个连接使用一个线程的阻塞IO,ActiveMQ还可以为每一个客户端连接使用一个消息分发线程.你可以通过将系统参数org.apache.activemq.UseDedicatedTaskRunner设置为false来设置ActiveMQ使用一个搞线程池.下面是一个示例:
ACTIVEMQ_OPTS="-Dorg.apache.activemq.UseDedicatedTaskRunner=false"

确保ActiveMQ代理用于足够的内存来处理大量的并发连接,需要分两步进行:
首先,你需要确保运行ActiveMQ的JVM在启动之前已经配置了足够的内存.可以使用 JVM的-Xmx选项来配置,如下所示:
ACTIVEMQ_OPTS="-Xmx1024M?-Dorg.apache.activemq.UseDedicatedTaskRunner=false"

其次,需要确保JVM配置了适量的专门供ActiveMQ代理使用的内存.这个配置可用通过<system-Usage>元素的limit属性来配置.一个不错的根据经验得到的规则时,在连接数为几百个时配置512MB为最小内存.
如果测试发现内存不够用,可以增加内存配置.你可以按照下面代码示例来配置ActiveMQ使用的内存限制:
代码:为ActiveMQ代理设置内存使用限制
<systemUsage><systemUsage>
<memoryUsage><memoryUsage limit="512mb"/></memoryUsage>
<storeUsage><storeUsage limit="10gb" name="foo"/></storeUsage>
<tempUsage><tempUsage limit="1gb"/></tempUsage>
</systemUsage></systemUsage>

同样,简易减少每个连接的CPU负载.如果你正使用Open-Wire格式的消息,关闭tight encoding选项,开启该选项会导致CPU占有过多.Tight encoding选项可以通过客户端连接的URI中的参数设置以便关闭该选项.下面是示例代码:
String uri = "failover://(tcp://localhost:61616?" + wireFormat.tightEncodingEnabled=false)";
ConnectionFactory cf = new ActiveMQConnectionFactory(uri);

了解了一些扩展ActiveMQ代理处理大量连接的调优选项之后,我们在了解一些让ActiveMQ处理大量消息队列的调优选项.
默认的消息队列配置中使用一个独立的线程负责将消息存储中的消息提取到消息队列中而后再被分发到对其感兴趣的消息消费者.如果有大量的消息队列,建议通过启用optimizeDispatch这个属性
改善这个特性,示例代码如下所示:
<destinationPolicy><policyMap>
<policyEntries><policyEntry queue=">" optimizedDispatch="true"/></policyEntries>
</policyMap></destinationPolicy>

注意,代码清单中使用通配符>表示该配置会递归的应用到所有的消息队列中.
为确保扩展配置既可以处理大量连接也可以处理海量消息队列,请使用JDBC或更新更快的KahaDB消息存储.默认情况下ActiveMQ使用KahaDB消息存储.
到目前位置,我们关注了连接数扩展,减少线程使用以及选择正确的消息存储.下面的示例配置代码展示了ActiveMQ配置中为扩展进行了调优:
代码:为扩展进行调优的配置示例代码
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="amq-broker" dataDirectory="${activemq.base}/data">
<persistenceAdapter> <kahaDB directory="${activemq.base}/data" journalMaxFileLength="32mb"/> </persistenceAdapter>
<destinationPolicy> <policyMap> <policyEntries> <policyEntry queue="&gt;" optimizedDispatch="true"/></policyEntries></policyMap></destinationPolicy>
<systemUsage> <systemUsage> 
<memoryUsage> <memoryUsage limit="512mb"/> </memoryUsage> 
<storeUsage><storeUsage limit="10gb" name="foo"/></storeUsage><tempUsage>
<tempUsage limit="1gb"/></tempUsage>
</systemUsage></systemUsage>
<transportConnectors><transportConnector name="openwire" uri="nio://localhost:61616"/></transportConnectors>
</broker>
注意示例代码中所有为调优而建议的配置条目,这些调优条目在默认的配置文件中并没有配置,所以请确保给予充分重视.
ActiveMQ 部署及发送接收消息 ActiveMQ 部署及发送接收消息 一、           下载 下载地址:http://activemq.apache.org/ 我这里使用的版本为当前最新5.8.0。 下载版本有Windows和Linux两个版本,且都分为32位和64位。根据自己需要选择下载。 二、           安装 我这里下载的为windows的32位版本(apache-activemq-5.8.0-b 阅读详情

相关推荐

ActiveMQ消息队列的介绍以及部署

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。支持来自Java,C,C ++,C#,Ruby,Perl,Python,PHP的各种跨语言客户端和协议。完全支持JMS客户端和Message Broker中的企业集成模式。支持许多高级功能,如消息组,虚拟目标,通配符和复合目标。

江晓龙的博客 1万+

ActiveMQ问题分析和解决

1)KahaDb和AMQ Message Store两种持久方式如何选择?官方:From 5.3 onwards - we recommend you use KahaDB - which offers improved scalability and recoverability over the AMQ Message Store.The AMQ Message Store which alt

秀才的专栏 1万+

ActiveMQ高并发处理方案

ActiveMQ高并发处理方案ActiveMQ高并发处理方案 超级字数补丁超级字数补丁

ActiveMQ中Consumer特性详解与优化

前言     从本文中你可以了解到如下内容:     1) consumer端消息消费的模型,session的运作机制     2) 如果提升broker和consumer端消息消费的速率     3) selector,group,exclusive对消息消费的影响     4) 如何让Priority更好的运行,提高消息的顺序性     5) Slow Consumer的产生原...

深入一点 1933

药物重定位实战:如何用反向找靶技术挖掘老药新用(附Python代码示例)

本文详细介绍了药物重定位中的反向找靶技术,通过分子相似性计算、机器学习模型和结构对接等方法,挖掘已有药物的新治疗潜力。附Python代码示例,帮助读者快速实现从分子结构到潜在靶标的智能预测,显著提升药物研发效率。

weixin_28726671的博客 259

保姆级教程:用AI辅助反编译Python3.9+的EXE文件(兼容新版pycdc工具)

本文详细介绍了如何利用AI技术辅助反编译Python 3.9+的EXE文件,解决传统工具如uncompyle6无法处理新版字节码的问题。通过pycdc工具和AI大模型的结合,开发者可以高效还原代码逻辑,并提供了从EXE解包到字节码解析的完整流程,适用于逆向工程和代码分析场景。

hill8的博客 1223

Activemq构建高并发、高可用的大规模消息系统

摘要:  在网上看了很多关于Activemq的帖子,但是大部分的内容都只能算是对activemq官网内容的翻译。很少有相关的案例分析,本文将分享"如何用Activemq构建超大(10万笔消息/秒以上)规模消息系统"。在实时消息系统中,MQ消息中间件广泛应用于各类消息系统中,在异步消息处理架构中,MQ几乎是必备的中间件。 同时,MQ的处理性能也将直接影响整个系统的性能。

周双的博客 1万+

深入解析SerDes系统中的时钟数据恢复电路(CDR)——基于Cadence的PLL/Bang-Bang/PS-PI架构实现与仿真

本文深入解析SerDes系统中的时钟数据恢复电路(CDR),重点探讨基于Cadence平台的PLL、Bang-Bang和PS-PI三种架构的实现与仿真。通过详细的技术对比和工程实践案例,揭示CDR在高速串行通信中的关键作用,并提供TSMC 28nm工艺下的优化策略与故障排查经验,助力工程师应对10Gbps以上SerDes设计挑战。

weixin_29202687的博客 249

ActiveMQ的集群与高可用

单纯从《ActiveMQ In Action(Manning-2011)》一书介绍的总结。

zuolj的专栏 1万+

告别踩坑!S32K3xx芯片上RTD-SDK的DFLASH与FEE模块配置全流程(基于S32DS)

本文详细解析了在NXP S32K3xx系列MCU上配置RTD-SDK的DFLASH与FEE模块的全流程,基于S32DS开发环境。从Cache配置、Mem_43_InFls模块设置到MemAcc模块的三种调用模式,提供了实战代码示例和常见问题排查表,帮助开发者高效完成存储管理配置,避免常见错误。

weixin_42653691的博客 268

详解RT-DETR网络结构/数据集获取/环境搭建/训练/推理/验证/导出/部署

本文给大家带来是利用RT-DETR模训练自己的数据集,RT-DETR是一种新提出的目标检测模型,它利用的自注意力机制来处理图像数据。不同于YOLO通过连续的卷积层直接对图像区域进行分析,RT-DETR采用Transformer架构中的自注意力机制,这允许模型更有效地理解图像中不同部分之间的关系。这种方法使得RT-DETR在处理图像中的复杂场景和多对象环境时,能够展现出更高的准确性和效率。此外,RT-DETR在保持高精度的同时,也针对实时处理进行了优化,使其适合需要快速响应的应用场景。

Snu77的博客 6万+

10.3 为高并发程序部署ActiveMQ

 博客已搬家, 更好阅读体验, 戳 http://www.jack-yin.com/english/translation/activemq-in-action/1671.html 10.3 Deploying ActiveMQ for large numbers of concurrent applications 10.3 为高并发程序部署ActiveMQ   Scaling yo...

Jack_Yin的专栏 154

大数据领域存算分离:教育行业的数据应用探索

在当今数字化时代,教育行业积累了海量的数据,如学生的学习记录、考试成绩、在线学习行为等。如何高效地存储、管理和分析这些数据,以挖掘其潜在价值,为教育决策、教学改进和学生个性化发展提供支持,成为教育行业面临的重要挑战。大数据领域的存算分离技术为解决这一问题提供了新的思路和方法。本文旨在探索存算分离技术在教育行业的数据应用,分析其原理、优势和实际应用场景,为教育行业的数据管理和分析提供参考。本文共分为十个部分。第一部分介绍背景,包括目的和范围、预期读者、文档结构概述和术语表;

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 812

微信小程序篮球场馆预订系统开发实战

体育场馆管理系统通过数字化改造提升运营效率,其中微信小程序因其用户基础广泛成为理想载体。系统采用SpringBoot+小程序技术栈,实现场馆展示、在线预订、支付闭环等核心功能。关键技术涉及微信环境判断、时间冲突检测算法和支付集成,其中分布式锁解决高并发库存问题。这类系统适用于各类体育场所,通过实时库存管理和移动支付,显著改善传统纸质登记的混乱局面。开发中需特别注意微信授权流程和小程序性能优化,如图片压缩和CDN加速能有效提升用户体验。

weixin_30387799的博客 432

【四足机器人项目实战】cheetah 3/mini运动控制工程解读(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、主程序入口1.代码流程2.终端设置信息提示二、用MiniCheetahHardwareBridge类构造一个hw的对象并初初始化1.2.3.4.三、运行硬件桥驱动【MiniCheetahHardwareBridge】1.2.3.4.四、1.2.3.4.总结参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对cheetah3/m

qq_35635374的博客 2614

从0到1打造一台机器人走起来

1)本体机械结构设计,依据人体生物学和生物力学知识,结合机器人运动时各关节扭矩需求,进行合理选用电机,比如胯部需要大扭矩,腿部惯量小等2)硬件拓扑上,分层架构的信号层和功率协同工作,高带宽,低延时,硬实时3)步态规划设计与验证环节实机回溯和部署过程:Real2Sim,Sim2Sim,Sim2Real。

weixin_43163941的博客 242

php activemq高并发,Activemq构建高并发、高可用的大规模消息系统

摘要:Activemq构建高并发、高可用的大规模消息系统 在网上看了很多关于Activemq的帖子,但是大部分的内容都只能算是对activemq官网内容的翻译。很少有相关的案例分析,本文将分享"如何用Activemq构建超大(10万笔消息/秒以上)规模消息系统" 在实时消息系统中,MQ消息中间件广泛应用于各类消息系统中,在异步消息处理架构中,MQ几乎是必备的中间件。Activemq构建高并发、高...

weixin_33514582的博客 431

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ActiveMQ 集群部署

ActiveMQ 集群部署

繁星 4349

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ActiveMq集群部署

本文介绍基于zookeeper的ActiveMq的集群部署。

qq_39166937的博客 3610

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ActiveMQ使用与部署

1 JMS与MQ  1.1 JMS JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,中文称Java消息服务。JMS是一种与厂商无关的 API,用来访问消息收发系统消息;就像JDBC(Java Database Connec

阿智的专栏 5959

kubernetes 部署 ActiveMQ

kubernetes 部署ActiveMQ 单个ActiveMQ部署就像部署Java应用,首先依赖docker制作Dockerfile,放到仓库lyndon1107/activemq。 然后手动编写kubernetes文件:activemq-deployment.yml 和 activemq-service.yml。 需要注意: MQ的配置文件:jetty.xml中127.0.0.1 改为 0.0.0.0; MQ的登录:admin admin Dockerfile 制作 dockerfile_active

Lyndon的专栏 2388

多个ActiveMQ实例部署记录

多个ActiveMQ实例部署记录 *** 首先要明确,多个ActiveMQ实例并不是多分ActiveMQ *** 安装一个MQ实例 首先将 apache-activemq-5.15.10-bin.tar.gz 上传到服务器 使用 tar-zxvf apache-activemq-5.15.10-bin.tar.gz 将其解压 然后直接进入bin文件夹执行 ./activemq start ...

繁星 522

activeMq部署安装及在springboot中实现消息的发布订阅

一、linux环境部署 1、下载安装包(地址戳这里)apache-activemq-5.16.3-bin.tar.gz并上传到云服务器。 2、解压:tar -zvxf apache-activemq-5.16.3-bin.tar.gz 3、相关配置文件 activemq.xml可以修改各协议连接的ip地址: jetty.xml可以修改管理后台的ip及端口 jetty-realm.properties可查看账户名及密码 4、进入bin目录执行./activemq start命令启动act

xiaoxiaoxiao_Ming的博客 1383

ActiveMQ的多种部署方式

ActiveMQ提供了Master-Slave和Broker-Cluster两种部署方式实现高可用和负载均衡。Master-Slave通过共享存储或ZooKeeper实现主备切换,解决高可用问题;Broker-Cluster通过网络互连共享队列,实现负载均衡。但单独使用任一方式都有局限:Master-Slave不支持负载均衡,Broker-Cluster无法保证消息不丢失。文章提出将两者结合部署的方案,通过配置多个Broker节点(如Broker-A与Broker-B组成Cluster,Broker-C作为

1100
上一篇: Redis文档链接(含官方中文)
下一篇: ActiveMQ流控
架构师的清醒
博客等级 码龄14年 291粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值