最近同学在写学校的一个公共API,用的是nodejs的restify框架。完成基础之后开始压测,QPS只有20……
20……对于一个公共API来说不是调用一下就死的事情么。第一怀疑对象自然是数据库了,抽出业务逻辑然后压数据库,QPS终于上升了,达到了30,后端是oracle的数据库,node的oracle这个包不支持连接池。换成另外的支持连接池的包也无济于事。
后来突然想起来为了省事,nodejs是直接跑在443上处理https请求的,而https请求的加密和解密是需要大量运算的。于是上了nginx反代给nodejs,让nginx去处理ssl的加密,QPS终于回到了400
所以说,千万不要让nodejs去直接处理https请求,不然会死的很惨……