socket server中大量数据库操作
现有项目要用到java socket做服务端,主要功能就是从数据库下载数据以及保存客户端传上来的数据到数据库。
大概层次分为:
网络IO层,业务逻辑层。
因为数据库操作比较慢,所以如果针对数据保存以及查询放到业务逻辑层的话势必会影响server的性能。
如果在加层数据处理层,与业务层公用一个队列,检测队列处理sql。遇到需要连贯性业务逻辑处理怎么办?
比如:
逻辑开始-》开启SQL事务-》逻辑处理-》处理SQL-》逻辑处理-》结束SQL事务。
遇到这种情况在逻辑线程去直接处理,比较简单,但是如果考虑性能问题的话,必须要将数据库操作与逻辑分离开,数据库层将处理完的SQL结果放到完成队列中供业务层去用,这样一来好像业务事务完整性好像不好控制,以及流程看起来比较乱。
希望各位网友能给出一些建议,或者有其他更好的方案能够指点指点,谢谢!