软件开发框架

我有个问题啊,

如果我的程序是一个网络服务器程序,但是这个程序需要访问数据库。此程序运行在多核心的平台上。

那么,应该采用什么样的编程框架结构呢

 

我采用的方法是, 一个主线程处理各种网络请求, 另外维护一个线程pool,每个线程与一个数据库连接进行绑定,当初线程获取网络请求后,进行处理,如果此处理与数据库没有关系,那么直接由这个主线程处理完。

如果这个任务比较重,比如数据库连接,那么从threadpool 里面取出一个线程,发起数据库连接进行处理。主线程放弃任务,从线程在处理完后,将处理结果发给一个resultcontainer。 主线程会一边处理网络请求,一边轮询这个resultcontainer,如果数据结果回来后,主线程接着处理。并把处理结果发给发送网络请求的客户端。

 

这种结构的好处: 从线程只进行数据库操作,不进行逻辑处理,所有的逻辑操作由主线程完成,因此主线程和从线程之间只有一个数据结构共享,也就是:1个主线程和n个从线程之间通过resultcontainer 进行通信。这样,只有一个地方需要同步,那么软件比较稳定。

 

我的这种方法,要求程序员对一个网络请求的处理,进行解构decouple,特别是涉及数据库操作。

这种逻辑显得与常规处理有点不一样。

 

不知道这种服务器结构是不是一般处理方法。敬请服务器开发人员对我的结构进行评价,谢谢!!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值