【发布时间】:2011-10-12 20:30:06
【问题描述】:
首先让我描述一下我计划将 activemq 用于我的服务的方式。
该服务为其客户提供 API,并保证通知任何对其数据发生变化感兴趣的人。例如,如果创建了新用户,则每个 API 用户都应该能够收到有关它的通知,并在他们愿意的情况下查询新信息(或以任何其他方式处理通知)。为了实现这些通知,我使用了 activemq。通知作为持久消息发送到相关主题,例如"Service.User",因此每个想要随时了解新用户的人都可以简单地实现持久消费者来接收来自该主题的消息。
我需要的主题并不多,但消息量可能非常高 - 我预计一开始每天大约 100-200k 条通知,并且在部署到生产环境时能够大幅增加这个数量。
在实现了上述场景后,我似乎遇到了某种限制问题。
该服务在C#.Net 和Apache.NMS 中开发,ActiveMQ 安装在Windows Server 机器上。
我没有时间优化我的代码,我确实为每个发送的通知创建了一个新的连接/会话/生产者(因为 C# 中尚不支持pooledconnectionfactory)。但这不是问题,因为目前我并不关心这种性能。
我遇到的问题是,在运行我的功能测试时,一旦它达到大约 20k 条消息,我似乎无法向 activemq 发送消息。它只是挂起并导致我的事务超时(40 秒)。当我在 http://localhost:8161/admin/topics.jsp 管理页面删除所有主题的消息时,它得到了解决。
能否请您指出我应该为我的案例使用的正确 actviemq 配置?
我面临的问题可能是什么原因?
也欢迎任何总体建议!
【问题讨论】:
标签: c# activemq persistent