是否有高性能JDBC支持的JMS代理



我有一个大量使用JMS(目前是OpenMQ)的应用程序。我们需要一些动态消息的持久存储,这需要在数据库崩溃时仍然存在,因此我们将代理的存储移到JDBC,因为这意味着我们可以复制和备份数据库集群,并且知道从备份恢复时关系存储和消息存储都在同一时间点。

我们发现OpenMQ的JDBC支持存储方法非常慢(几十条消息/秒)。是否存在使用JDBC性能良好的代理?理想情况下,我们需要数千条消息/秒,但也可以容忍100条消息/秒。

用JDBC支持消息服务器永远不会像使用优化的消息存储那么快。大多数情况下,代理只是将消息写入磁盘,而不读取。传统数据库通常更注重读性能和复杂查询,而不是最大写性能。

ActiveMQ与复制LevelDB似乎是一个体面的适合您的要求。它将自动将消息存储复制到"从属"代理,同时仍然允许高吞吐量。

另一个选择是挖掘数据库部分而不是代理部分。如果将其他代理连接到JDBC,您可能也会注意到类似的模式。有没有一种方法可以提高数据库的写性能?SSD硬盘吗?设置?等。正如我所说,默认情况下,大多数数据库都是针对复杂查询的读取性能和性能进行调整的。

最新更新