20

Nodejs mysql pool使用实例

Nodejs mysql pool使用实例,mysql连接池

在开发web应用程序时,连接池是一个很重要的概念。建立一个数据库连接所消耗的性能成本是很高的。在服务器应用程序中,如果为每一个接收到的客户端请求都建立一个或多个数据库连接,将严重降低应用程序性能。

因此在服务器应用程序中通常需要为多个数据库连接创建并维护一个连接池,当连接不再需要时,这些连接可以缓存在连接池中,当接收到下一个客户端请求时,从连接池中取出连接并重新利用,而不需要再重新建立连接。 Continue reading

19

Node.js GET Request ETIMEDOUT & ESOCKETTIMEDOUT

我使用Node.js – async & request模块来抓取超过1亿的网站,几分钟后我不断遇到错误ESOCKETTIMEDOUT & ETIMEDOUT。
我重新启动脚本后,它又可以工作了。这似乎不是连接限制的问题,因为我仍然可以做resolve4, resolveNs, resolveMx和curl没有延迟。
你觉得代码有什么问题吗?或任何建议吗?我希望将async.queue()并发性至少提升到1000。谢谢你! Continue reading

12

什么是CPU密集型、IO密集型?

CPU密集型(CPU-bound)

CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。

在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。 Continue reading

12

多进程和多线程的应用场景

多进程模型的优势是CPU,适用于CPU密集型。同时,多进程模型也适用于多机分布式场景中,易于多机扩展。

多线程模型主要优势为线程间切换代价较小,因此适用于I/O密集型的工作场景,因此I/O密集型的工作场景经常会由于I/O阻塞导致频繁的切换线程。同时,多线程模型也适用于单机多核分布式场景。

io 操作不占用CPU(从硬盘、从网络、从内存读数据都算io)
计算占用CPU(如1+1计算) Continue reading

11

韩国演唱会抢票系统生产环境(Linux)配置记录

韩国演唱会抢票系统生产环境:

系统:CentOS Linux release 7.2.1511 (Core)

Linux管理系统:宝塔 (免费版 7.0.3)

开发语言:NodeJS (v12.14.0)

NodeJS开发框架:ThinkJS

其它说明:本系统是可以在远程主机中使用,也可以在本地搭建环境使用。windows系统/Liunx系统 都可以。

流程:

1、购买服务器及域名

对于抢购秒杀类系统,服务器核心数越多是越好的,可以提高并发并行的处理速度;内存就是核心数 x 2 。如果按最多并发抢100张票来计算,理论带宽1M就可以了,所以说带宽也可以随便选了。(查看我总结的计算服务器带宽的公式)。 Continue reading

11

pm2常用命令

pm2forever是启动Nodejs服务常用到的两个工具。使用这两个指令可以使node服务在后台运行(类似于linux的nohup),另外它们可以在服务因异常或其他原因被杀掉后进行自动重启。 由于Node的单线程特征,自动重启能很大程度上的提高它的健壮性。
本文不对比两者工具优劣,只是结合自己的使用,简要介绍如何在工程部署时更好的使用pm2。 Continue reading

10

linux下安装nodejs包管理器nvm

linux下安装nodejs包管理器nvm,linux命令nvm

下载安装

next:
vim ~/.bashrc 写入下面代码

下一步即可安装node
如 v6.11.0版本 Continue reading

10

Linux Kali-Rolling(树莓派)安装Atom编辑器

Atom是由GitHub开发的免费开源文本编辑器。基于Electron (CoffeeScript, JS, Less, HTML),它是一个使用web技术构建的桌面应用程序,经常被称为21世纪的文本编辑器,核心是可编程的。Atom的主要特性是跨平台编辑、内置包管理器、文件系统浏览器、多个窗格支持、查找和替换功能,以及智能自动完成。 Continue reading

10

Linux dpkg 命令用法及示例

Linux dpkg 命令用法及示例

dpkg是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包。

下面是它的一些命令解释:

1)安装软件
命令行:dpkg -i <.deb file name>
示例:dpkg -i avg71flm_r28-1_i386.deb

2)安装一个目录下面所有的软件包
命令行:dpkg -R
示例:dpkg -R /usr/local/src Continue reading