Delphi Rest Client/Server(WebBroker) 数据库 同时客户端请求



我是新手的休息开发,我正在创建一个简单的REST API,以从客户端请求数据库值。我已经使用了" Delphi Web Server应用程序"项目助理(使用TidhttpwebBrokerbridge和WebModule的项目助理,您可以在其中创建不同的"操作")。它可以正常工作,我可以从客户端提出请求。

服务器WebModule包含一个FDConnection和一些FDQuery组件来制作数据库(MySQL)查询,并且每个操作都会通过获得的特定参数执行特定的查询。

客户端应用程序使用TrestResponse,Trestrequest,Tresrresponse组件发送/接收数据。

例如:

  • 客户端请求对特定用户的某些值,将" user = user1"one_answers" passwd = ***"发送为请求参数。
  • 服务器执行查询"从xxx中选择 * user = user1 and passwd = ... ... ..."并将响应发送给客户端。

每个查询都是"用户特定的"。

好吧,它有效,但是现在由于我的休息/webbroker的无知,我有一些疑虑。

如果一次提出数千个请求怎么办?由于FDQuery光标在另一个记录中,服务器是否响应错误的数据?或Weberker是否为每个请求创建查询毫无问题?

最好在运行时为每个请求创建fdquery并在请求完成后销毁它吗?

我昨天进行了一个简单的测试,运行了客户端应用程序的三个实例,并同时向服务器发送了300个请求(从每个客户端那里),并且可以运行正确的数据,但是我不知道这是否足够保证。

这(Delphi Web服务器应用程序)是服务器的正确方法吗?DatasNap有什么区别?

有任何建议?

在datasNap体系结构中(有几种口味,但它们都有一个共同的体系结构),"服务器"为每个客户端连接提供了1份ServerMethodsunit的副本。这是将ServerClass.LifeCycle设置为Session。因此,每个客户端将能够执行ServerMethod并将结果返回,独立 任何其他客户端可能要求的内容。

在您的情况下,每个ServerMethodsUnit都有其自己的FdConnectionFdQuery等,依此类推,您是否将设计时间组件放置在此处或在运行时实例化,后果是相同的。

这里的限制将是DataSnap/Weberker应用程序正在运行的硬件。(网络带宽,RAM,硬盘速度等)

datasNap(REST,DBX,独立,Isapi,Apache,Linux),我认为是客户/服务器开发的合理基础。

最新更新