对于企业级的C/S应用,如果此应用程序很多功能需要操作数据库,就算是短连接,也还是会对数据库造成很大的压力,不像B/S应用,
可以通过数据库连接池的形式来减轻对数据库的压力。C/S程序每个客户端都是一个独立的应用,所以就算每个客户端自实现一个数据
库连接池也不能从根本上解决此问题。那么是否可以通过另一种架构的模式来实现此功能呢,答案是肯定的。首先我们要明确为什么C/S
不能像B/S程序那样来通过连接池的形式来达到此目的呢,因为B/S程序所有的数据库操作都是由服务端的统一的模块来管理数据库连接的,
这样就能够实现对数据库连接复用。而传统的C/S程序不行,就算每一个客户端实现一个数据库连接池,每个连接池中就算只有一个数据库
连接,那么3000个客户端就会有3000数据库连接。试想如果我们也可以把C/S程序做成B/S程序那样,所有数据库的操作有一个统一的服务
端模块来处理,这个问题就迎刃而解了。怎么做呢:
简而言之,我们要做一个数据库管理服务端,每个C/S程序所有关系到数据库方面的工作都统一提交给数据库管理服务端来操作,这样就可以。
以java类型的C/S程序为例,我们可以通过Socket的形式来实现,具体实现逻辑在此不说了,具体的功能模型如下:
对此有什么不对的、不合理的地方或是有什么更好解决办法的欢迎指正