2014-11-06 98 views
0

我们正在研究一些应用程序,在这些应用程序中,数据库的更新必须传播到某些其他应用程序,如果他们对这些应用程序感兴趣,则可以将更改发送到其他系统。初始计划是将这些更改通知存储在关系数据库表中,以便在生产者和消费者之间进行缓冲。缓冲区表应该能够缓冲一周的变化通知(消费者下降一周)。这将达到200 GB(是的,GB而不是MB)。这是一个很大的数字,但我们有很多数据...JMS/ActiveMQ的持久存储容量足以支持200 GB吗?

现在有人建议使用JMS缓冲而不是关系数据库表,因为缓冲区在概念上是一个队列。现在的问题是,JMS系统(我们使用ActiveMQ)是否可以缓冲那么多的数据(例如那些200 GB)而不降低性能。我们根本没有经验要知道。那里的任何人都有线索?

回答

2

不幸的是,这似乎是一种可能无法由别人回答的问题。在硬件,网络基础设施方面存在很大的差异性,甚至您对“性能下降”的定义是可以接受的,任何其他人的经验可能都不是直接适用的。

因为听起来你已经有了一个ActiveMQ实例,所以我建议你只需创建一个新的队列并开始向其中投入数据(当然在你的开发/测试环境中),看看会发生什么。自己做这个实验的努力很低(一些代理配置设置可以增加代理的限制,另外还有一些代码可以向代理发布消息),它更可能给你一个你可以信任的答案,而不是别人的经历类似于不同的硬件,网络,ActiveMQ负载等。

+0

我想补充一点,你可能想要计划在这段时间内在过渡期间要做什么。恢复200GB可能需要一些时间,特别是如果期刊损坏/缺失以及索引必须重建。你的经纪人可能需要很长时间才能回来(可能超过一个小时)。 – 2014-11-07 02:01:26

+0

感谢您的输入。我想,我不应该提到性能。我只想知道ActiveMQ是否可以处理200 GB。但似乎没有办法像开始一个实验那样按照建议来解决这个问题。感谢您的意见。 – OlliP 2014-11-07 10:46:39