1

我的 webapp 需要使用多个数据库分片,并且偶尔需要并行查询这些分片。是否有任何 Web 脚本语言对并行非阻塞数据库访问具有成熟、稳定的支持?如果是这样,你能指出我正确的方向吗?免费的开源是首选,但我主要想要一些可以工作的东西。

线程对我来说很好,但我不需要真正的多线程支持。我想要的只是对五个不同的数据库服务器进行五个 10 秒的数据库查询需要 10 秒而不是 50 秒。它实际使用了多少 CPU 对我来说并不重要。

4

2 回答 2

1

实际上,您似乎不需要并行非阻塞 I/O——您需要并行非阻塞数据库访问,这通常通过不同的 API 处理。

例如,在 Java 中,一般 I/O 是通过 java.io 和 java.net 中的组件处理的,但数据库访问是通过 java.sql 和特定于供应商的驱动程序处理的。类似的特征是其他平台/语言的典型特征。

您的主要问题似乎是实现某种多处理/多线程,您可以从中发出单独的并行数据库访问请求。我建议这是你应该研究的主要领域。

关于该主题有很多可用的材料,但您需要专注于您的特定平台/语言以获得大部分细节。请注意,这在传统上是软件开发的一个非常困难的领域。

向您致以最良好的祝愿...

于 2008-12-08T19:52:15.180 回答
0

一种可能的解决方法是分割网页,使每个部分只命中一个分片。浏览器应该为每个部分启动一个单独的 AJAX 请求并在客户端构建页面。

此解决方案不依赖于所选语言/框架,但需要在客户端启用 JavaScript。

性能可能会因每个访问者的操作系统、浏览器和设置而异(更多信息)。但是,一旦页面每个部分的数据可用,页面就会逐渐呈现。

作为与服务器端解决方案相比的缺点,这种方法将复杂性从服务器转移到客户端 JavaScript,并增加了 Web 服务器的负载。

于 2009-01-02T14:14:16.707 回答