服务端数据库的操作如何不阻塞

1、业务服务器进程中包含多个线程,每个线程处理的业务不一样,master负责请求的转发,slave负责具体的事情,订阅线程负责把数据通知给订阅者。

2、这些线程都有数据库操作的业务,不同线程之间的数据库操作,操作的数据不一样,如何不阻塞呢?

  建立一个db类,每个线程包含db对象,都与数据库建立一个连接,不同的连接之间数据库操作不阻塞。

3、按照上面的设计,master与数据库一个连接,数据库的操作必须排队,前一个操作耗时,后一个操作必须等待。也就是说,不同请求之间会阻塞,同一个线程,两次数据库请求操作如何不阻塞呢?

  新建一个db线程,定时处理消息。master收到一个耗时的数据库操作,把请求扔给db线程,接着可以处理下一个数据库请求,不阻塞。db线程处理完之后,再返回给master。

注:这里的线程继承框架,会定时取出消息进行处理。

  

时间: 2024-10-06 21:13:43

服务端数据库的操作如何不阻塞的相关文章

Android应用源码图书馆管理系统带服务端数据库

本项目是一套基于安卓的图书馆管理系统,包括jsp服务端源码,安卓客户端源码和mysql数据库.代码比较简单,供学习anroid与j2ee交互.例如Sqlite的使用.安卓客户端与jsp的web服务端的交互不错的全套完整源码.已包括服务端,搭个Tomcat环境就可以,非常简单. Code.rar

Android应用源码基于安卓的校园二手交易系统客户端+服务端+数据库

该源码是校园二手交易系统应用带服务端,也是一个基于安卓和javaweb的校园二手交易系统,包括整套安卓客户端.javaweb服务端.mysql数据库,可以进行基本的列表显示帖子.显示帖子详情.用户注册登录.收藏帖子.留言.上传图片发布信息,管理发布的帖子.发布和管理求购信息等交易系统常见的功能.机子上有myeclipse的朋友可以直接导入项目,配合mysql数据库进行测试,没有myeclipse的朋友可以搜一个叫jspstudy 2014的jsp集成环境进行测试,mysql连接地址需要在web端

nodejs服务端使用jquery操作Dom

添加模块: npm install [email protected]3.2.1   npm install jsdom 引入模块: var jsdom = require("jsdom");   var window = jsdom.jsdom().defaultView;   var $ = require('jquery')(window); 原文地址:https://www.cnblogs.com/exmyth/p/9359333.html

[javaSE] 网络编程(TCP服务端客户端互访阻塞)

客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据 客户端: 获取Socket对象,new出来,构造参数:String的ip地址,int的端口号 调用Socket对象的getOutputStream()方法,获取到OutputStream对象 调用OutputStream对象的write()方法,输出流输出数据,参数:byte[]字节数组 调用Socket对象的getInputStream()方法,获取到InputStream对象 调用InputStream对象的read()方法,读取数

Zabbix配置文件详解之服务端——zabbix_server

作为zabbix的部署,这里就不说了,网上一大堆文档,但关于配置文件的说明就比较少,这里列出服务端的配置文件zabbix_server的详细解释,感谢我主管的功劳. Zabbix Server端配置文件说明 # This is a configuration file for Zabbix Server process # To get more information about Zabbix, # visit http://www.zabbix.com ############ GENERA

Zabbix配置文件详解之服务端zabbix_server

作为zabbix的部署,这里就不说了,网上一大堆文档,但关于配置文件的说明就比较少,这里列出服务端的配置文件zabbix_server的详细解释,感谢我主管的功劳. Zabbix Server端配置文件说明 # This is a configuration file for Zabbix Server process # To get more information about Zabbix, # visit http://www.zabbix.com ############ GENERA

netty源码分析之服务端启动

ServerBootstrap与Bootstrap分别是netty中服务端与客户端的引导类,主要负责服务端与客户端初始化.配置及启动引导等工作,接下来我们就通过netty源码中的示例对ServerBootstrap与Bootstrap的源码进行一个简单的分析.首先我们知道这两个类都继承自AbstractBootstrap类 接下来我们就通过netty源码中ServerBootstrap的实例入手对其进行一个简单的分析. // Configure the server. EventLoopGrou

python学习之数据库mariadb操作

数据库简介数据库分类关系型数据库:指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织.主流的关系型数据库有:Oracle.Microsoft SQL Server.MySQL.PostgreSQL,SQLite.MariaDB(MySQL的一个分支)Microsoft Access.SAP.非关系型数据库:指非关系型的,分布式的,以键值对存储且结构不固定,可以减少一些时间和空间的开销.非关系型数据库都是针对某些特定的

Redis源码分析(三十五)--- redis.c服务端的实现分析(2)

在Redis服务端的代码量真的是比较大,如果一个一个API的学习怎么实现,无疑是一种效率很低的做法,所以我今天对服务端的实现代码的学习,重在他的执行流程上,而对于他的模块设计在上一篇中我已经分析过了,不明白的同学可以接着看上篇.所以我学习分析redis服务端的实现也是主要从main函数开始.在分析main执行流程之前,Redis的作者在这里声明了几个变量,这个我们有必要知道一下. /* Our shared "common" objects */ /* 共享的对象 */ struct