2

我目前正在从事一项任务,该任务要求我对 apache activemq 和 aws-sqs 之间的响应时间进行基准测试。

在我的发现中,我发现 activemq 生产者需要 35 秒 / 1000 条消息 [每个 120 字节] 消费者需要 250 毫秒 / 1000 条消息 [每个 120 字节]

我正在使用基于 Maven + Git + Java 的项目结构。我正在通过以下方式从 connectionfactory 创建会话:

cFactory.createSession(false, Session.AUTO_ACKNOWLEDGE);

连接是同步的,消息的可靠性很重要。有人能告诉我这种行为背后的逻辑或原因吗?

我怀疑生产者需要时间,因为它不仅要发送而且还要等待运行在 ec2 上的 amq 服务确认它已经记录了消息这一事实。

请让我知道为什么制作人很慢,我该如何改进。

4

1 回答 1

2

您的怀疑是正确的,“它不仅要发送,还要等待 ec2 上运行的 amq 服务确认它已记录消息这一事实。”

尝试在事务中发送多条消息。tx 中的消息无需等待确认即可发送。只有当您执行 commit() 时,客户端才会阻塞等待确认 tx 中的所有操作都已成功存储。

于 2013-08-09T15:01:08.633 回答