DongYuanxin's Blog

搭建大型Node.js应用监控告警服务

为了快速发现线上 Node.js 服务问题,需要利用告警系统,来快速发现、通知开发者,从而快速回滚/修复问题。 认识告警中台 在开始前,需要认识一下告警中台。云开发Nodejs的告警系统,就是基于告警中台开发的。 自定义字段 能自定义告警字段,这些字段来自:告警任务设计中的任务触发告警时,传给中台 API 的参数。 这些字段可以被用来下发通知时,替换消息模板中的变量字段。 告警升...

Node.js async_hooks模块:实现异步上下文

为什么需要 async_hooks? node 是异步编程模型,存在一些痛点问题: 异步调用链很难追踪 缺少异步上下文的概念 缺少异步上下文的存储 API 而 async_hooks 就是为了解决这些问题而生。 Async Scope 函数有上下文,异步调用也有上下文。 对于一段异步代码,在不做特殊处理情况下,无法得知是哪个函数调用了此段代码: function...

Protobuf协议优化研究与Node.js使用

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。 特点:语言无关、平台无关、可扩展序列化结构。 场景:数据存储和交换。 优点:定义简单、(反)序列化速度快、支持多种数据结构 编码优化 Varint 编码:不定长二进制整型编码 第一位的 0 或者 1 代表:是否是数字的尾部...

接口高可用:如何应对API故障?

概述 相较于异地多活、高可用存储、高可用计算这些高大上的东东,接口故障平时出现的概率更高。例如某个接口导致了慢查询,返回时间过长;某个接口依赖第三方接口,结果第三方接口挂掉了,拖慢整个服务。 针对接口故障,有以下处理方法。 降级 其思想是保证核心业务接口正常,关闭其他接口。例如对于论坛,当访问量突增,保证读帖接口正常,但是发帖接口性能可以适当降低。 降级的目的是处理系统自身故障。 ...