需要大批量应用的设计

时间:2015-01-28 16:20:40

标签: java java-ee architecture

我们正在我们公司开始新产品,我们期待在DB上发生大量的保存。 db可能无法有效处理每秒这么多的保存。在这种情况下,什么是好的架构?

我们计划使用spring MVC来连接客户端。使用EJB将数据保存到数据库中(spring ejb集成)。显然是群集设置,但取决于他的新架构。

我们所做的所有保存都需要正确处理。我从未使用过MQ,我不知道它是否比这种情况有任何优势。

对数据库的保存次数大约为每(1-5)秒100,000次,这只是一个估计值。什么类型的设置会产生更好的结果?

1 个答案:

答案 0 :(得分:1)

我会考虑使用Apache Kafka对您的写入进行排队,并让消费者应用程序从队列中读取并写入数据库。这将减少负责同步写入数据库的Web服务器的延迟。在几个不同的基准测试中,Kafka已被证明每秒可处理多达500k次写入。因此,您将拥有足够的带宽来处理您期望的音量。 Kafka有一个java api,因此它非常适合您当前的架构。