ActiveMQ所能承载的主题/队列数测试
来源:互联网 发布:.net webservice与json 编辑:程序博客网 时间:2024/06/13 22:15
考虑这么一个场景:用监控服务器监控某设备,设备的数量相当庞大,每隔一段时间监控服务器就会把这些设备的最新状态信息投递到消息队列中,浏览器使用ActiveMQ的Ajax技术通过订阅来感兴趣的状态信息。问题是设备太多了,如果让浏览器接受处理所有的消息显然是不合适的,网络带宽,JavaScript的执行速度都受限。所以要有选择地接收消息。JMS消息格式中可以加入自定义的消息头,然后通过选择器就可以过滤消息(SQL92格式),但是在Web环境下,ActiveMQ 5.4的REST连接器现在已经支持选择器了,但是Ajax连接器仍旧没有(就在两天前刚加上了一个测试的Patch,NND!)。所以当前稳妥的做法还是:一个设备一个主题,例如“device.1”“device.2”…接下来的问题就是ActiveMQ最大能开多少主题/队列。经过测试,默认配置,一千多个主题的时候ActiveMQ就会出现“java.lang.OutOfMemoryError: unable to create new native thread”的异常,上网查找,原来ActiveMQ默认配置下单个主题/队列是在单独的线程中处理的,需要修改ActiveMQ的启动脚本,例如Windows下面的activemq.bat,找到“-Dorg.apache.activemq.UseDedicatedTaskRunner=true”,改成“false”,这样就解决问题了。另外“-Xmx512M”酌情调大些。实测10000个队列内存占用约1G。当然这终究不是完美的解决方案,希望ActiveMQ能快点完善Ajax的选择器,呵呵。题外话,如果不需要消息持久化的话,把activemq.xml中的“…”注释掉即可。参考:http://activemq.apache.org/rest.html#REST-Consumingwithselectorshttps://issues.apache.org/activemq/browse/AMQ-2874http://old.nabble.com/how-many-topics-can-I-create-in-a-broker-before-getting-OutOfMemoryError%3A-Java-heap-space-td17905477.htmlhttp://old.nabble.com/Large-number-of-queues-%28HowTo%29-td23602928.html
- ActiveMQ所能承载的主题/队列数测试
- ActiveMQ之队列和主题
- ActiveMQ之队列和主题
- activemq之主题、队列设置密码
- activemq之主题、队列设置密码
- ACTIVEMQ主题、队列设置用户名密码
- 消息队列activemq小测试
- int 整形数所能表示的最大范围
- ActiveMQ消息中间件之队列模式和主题模式详解
- YOGA新品发布,它能承载联想的未来吗?
- ActiveMQ实战(六)--Spring整合ActiveMQ实现队列和主题发布订阅通信
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- ActiveMQ 持久化(文件),查询队列剩余消息数、出队数的实现
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- 现在所能做的
- (hdu step 3.2.7)免费馅饼(数塔变形:求所能接到馅饼的最大数)
- 【ActiveMq】ActiveMQ消息队列的使用及应用
- 反映中国作坊式管理软件公司问题的《老板看后一夜没睡的辞职信》
- 新人报道
- lua 队列的简单实现
- 转帖:float型和double型数据的存储方式
- 喜欢买书
- ActiveMQ所能承载的主题/队列数测试
- javascript中闭包的理解
- 解决服务器上MSDTC不可用的办法
- Silverlight校园管理系统(Silverlight4+SQL2008)
- 夏季是转会的季节
- 超强的分页查询、排序示例代码
- Java 理论与实践: 正确使用 Volatile 变量
- c/c++资源(源码,开发工具,国内外知名技术网站)(网上收集整理)
- (DirectX系列01)DirectSound 3D语音特效