Nginx架构分析

Nginx模块化

  Nginx基于模块化设计,每个模块是一个功能实现,分布式开发,团队协作

  Nginx涉及到的模块分为五大类:核心模块、标准HTTP模块、可选HTTP模块、邮件模块、第三方模块

  编译后的源码目录 /usr/local/src/nginx-1.14.0/objs/ngx_modules.c

Nginx的web请求机制

   并行处理:多进程、多线程、异步

  高并发处理方案:开多个进程,每个进程处理一个请求;开多个线程(是进程的一个子单元,节省资源;多个线程共享一个内存块,同一个内存块的其他线程崩溃,同时[……]

查看更多……

Gradle使用mavenLocal()以及自定义jar包缓存路径

2018-03-21 00:00:55 只喝82年的雪碧 阅读数 9221更多分类专栏: Java版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_23085893/article/details/79633934

最近在尝试使用gradle代替maven创建web项目

在build.gradle文件中,使用mavenLocal() 发现并不生效

repositories {    mavenLocal([......]

查看更多......

InnoDB并发如此高,原因竟然在这?

《InnoDB行锁,如何锁住一条不存在的记录?》埋了一个坑,没想到评论反响剧烈,大家都希望深挖下去。原计划写写InnoDB的锁结束这个case,既然呼声这么高,干脆全盘系统性的写写InnoDB的并发控制,锁,事务模型好了。

体系相对宏大,一篇肯定写不完,容我娓娓道来,通俗地说清楚来龙去脉。

一、并发控制

为啥要进行并发控制?

并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control)。

技术上,通常如何进行并发控制?

通过并发控制保证数据一致性的常见手段有:

锁(Locking)

[……]

查看更多……

CentOS 7 升级gcc/g++编译器

  gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行。我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14、C++17都已经出来了,所以还是把编译器升级一下,才能紧跟发展,尝试使用14/17的新特性。gcc源码下载地址:https://gcc.gnu.org/。

第一步:下载源代码

 查了资料步骤上多了几个,重做一下:

  首先:

yum -y install texinfo

  如果不执行这个命令的话,那么在执行第四步的配置的时候,会出现makeinfo:could not f[……]

查看更多……

sqlserver快照,启用基于行版本控制的隔离级别

  在sqlserver标准的已提交读(read committed)隔离级别下,读写操作相互阻塞。未提交读(read uncommitted)虽然不会有这种阻塞,但是读操作可能会读到脏数据,这是大部分用户不能接受的。    ORACLE使用的是另一种处理方式:在任何一个修改之前,先对修改前的版本做一个复制,后续的一切读操作都会去读这个复制的版本,修改将创建一个新的版本。在这种处理方式下,读写操作[……]

查看更多……

PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式对比

简介:概述关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控制)来避免写操作堵塞读操作的并发问题,MVCC也就是通过使用数据的多个版本保证并发读写不冲突的一种机制,不同的数据库有不同的实现。 …

概述
关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控制)来避免写操作堵塞读操作的并发问题,MVCC也就是通过使用数据的多个版本保证并发读写不冲突的一种机制,不同的数据库有不同的实现。

MVCC的两种不同实现方式
第一种实现方式是将数据记录的多个版本保存在数据库中,当这些不同版本数[……]

查看更多……

windows server 2012R2 网络慢的那些事

  前段时间公司新采购了一台ibm的服务器,装的是 windows server 2012R2, 在做完项目迁移后,发现项目访问数据库缓慢,于是逐项查找原因,最后终于找到解决办法

以Administrator权限执行命令行(开始菜单中右键点击命令行程序,右键菜单中有以管理员身份执行的选型),并在命令行中执行一下命令(关闭自动调节):

  netsh interface tcp set global autotuninglevel=disabled

  打开自动调节的命令是:

  netsh interface tcp set global autotuning[……]

查看更多……