Node 错误处理之挖坑系列

前段时间要在项目中加上日志的上报,顺势了解了下怎么在node中完善错误信息的收集。 01 Error  JS 中的 Error 对象,包含了错误的具体信息,包括 name、message、错误堆栈 stack 等。可以以 new Error 方式创建实例抛出,或调用 Error.captureStackTrace 为已有对象添加 stack 错误堆栈信息 而后抛出。 02 错误抛出几种方式 Throw:Javascript 抛出的异常,是以 throw 方法抛出,

cephfs内核客户端性能追踪

问题描述 测试cephfs内核客户端的吞吐性能,direct写时单个客户端性能有上限,只能接近150 mb/s: 查看网卡流量,并没有打满: 查看集群负载也很低,osd磁盘很空闲,验证多台机器同时并发测试,总吞吐可以上去,怀疑单个客户端的上限有瓶颈。 源码分析 集群没有打满,网络也不是瓶颈,那么只能从内核客户端cephfs的写IO入手,寻找问题的根源。 cephfs内核客户端写IO的代码在文件fs/ceph/file.c: 从代码实现看,主要流程是ne

node中Session持久化与Redis缓存

IC图片目前的管理系统(搜索质量评估、电销、云平台、性能监控、账号体系、图片爬虫)都是基于node前后端全栈开发,数据存储也用到mongodb、mysql、redis,本文简单描述一下HTTP协议、cookie、session、以及node项目中如何引入redis做session持久化。 HTTP协议和TCP/IP协议组中其它协议相同,用于客户端和服务器端之间的通信,HTTP是一种无状态协议,及协议本身不保存客户端和服务端的通信状态,也就是说在HTTP这个级别,协议不会对请

NODEJS--HTTP实现分析

1.前言 目前,HTTP协议是互联网上应用最为广泛的一种网络协议,也是前端er接触最多的一种协议。通过阅读http模块在nodejs中的实现,能够更深入的了解HTTP协议。HTTP协议是基于TCP协议之上的应用层协议,它的实现离不开TCP/IP协议族。而具体到代码实现,http模块依赖于net模块。 如下图所示:在nodejs中,http通过net模块传输数据,得到数据之后依靠HTTP_PARSER对数据进行解析。 2.源码 启动一个HTTP服务 nodejs

微信有一个非常高效实用的技巧,推荐给你!

前不久,腾讯董事会主席兼CEO 马化腾表示,微信和 Wechat 的合并月活跃账户数量超过 10 亿,微信官方也专门输出了对应数据报告。 这意味着,微信正式成为中国首个月活跃用户超过 10 亿的应用。 乍一听,好像也没什么感觉了,但仔细想想,10亿,也确实真的挺吓人的。 毫不夸张地说,现在微信无处不在,几乎每一个人都离不开微信,用它聊天、用它记录生活、用它工作、用它游戏...... 除此之外,其实微信还有很多超级功能,一用就中毒。 今天,老贼就给大家推荐一个微信上非

MySQL · 特性分析 · 8.0 WriteSet 并行复制

并行复制的演进 MySQL最早的主备复制只有两个线程,IO 线程负责从主库接收 binlog 日志,并保存在本地的 relaylog 中,SQL线程负责解析和重放 relaylog 中的 event。当主库并行写入压力较大时,备库 IO 线程一般不会产生延迟,因为写 relaylog 是顺序写,但是 SQL 线程重放的速度经常跟不上主库写入的速度,会造成主备延迟。如果延迟过大,relaylog 一直在备库堆积,还可能把磁盘占满。 为了缓解这种问题,很自然的想法是提高 SQ