【发布时间】:2015-01-25 18:14:13
【问题描述】:
我正在构建客户端-服务器应用程序,我真的很想获得有关如何设计服务器-数据库连接部分的建议。 假设基本思想如下:
- 客户端在服务器上进行身份验证。
- 客户端向服务器发送请求。
- 服务器将客户端的请求存储到本地数据库。
在我们拥有的 Java 对象方面
- 客户端对象
- 服务器对象
- 数据库对象
因此,当客户端连接到服务器时,它们之间会创建一个会话,通过该会话交换所有数据。现在困扰我的是我是否应该为每个客户端会话创建一个数据库对象/连接,或者我是否应该创建一个处理所有请求的数据库对象。
因此这两个概念是
- 创建一个处理所有客户端请求的数据库对象
- 为每个客户端-服务器会话创建一个专用于客户端的数据库对象。
使用选项 1,我想所有方法都应该同步,以避免一个客户端线程不覆盖另一个客户端线程的变量。但是,在有大量并发请求的情况下,使其同步将非常耗时,因为每个请求都将被放入队列中,直到运行完成为止。
使用选项 2,似乎是更合适的解决方案,但为每个客户端-服务器会话创建数据库对象是一项消耗内存的任务,另外为每个客户端创建数据库连接可能会导致问题当并发连接的用户数很大时再次。
这些只是我的想法,所以请添加任何可能有助于决定的 cmet。
谢谢
【问题讨论】:
标签: java database sockets object client-server