观点:
https://www.zhihu.com/question/333368965/answer/771411673
总结:
https://www.zhihu.com/question/37379084/answer/74601296
观点:
观点1
观点2
node在阿里内部遍地开花
业务场景
架构形态
nodejs对比java
生态差距也比较大
总结: nodejs到底该如何使用?何时使用?
主流企业级微服务架构体系简化图:
Node.js 性能平台( Node.js Performance Platform )是面向所有 Node.js 应用提供 性能监控、安全提醒、故障排查、性能优化 等服务的整体性解决方案,尤其适用于中大型 Node.js 应用。
Node.js 性能平台凭借对 Node.js 内核深入的理解,提供完善的工具链和服务,协助客户主动、快速发现和定位线上问题。
Node.js 性能平台可以应用于所有 Node.js 应用,尤其适用于中大型 Node.js 应用。
Node.js 提供的精确到虚拟机级别的深度监控,能够如实的反应应用运行状态,通过配置报警规则,用户可以在发现系统出现故障(内存泄露或者 CPU 热点等)趋势时,通过诊断接口迅速定位故障点。
Node.js 性能平台特别适合业务发展迅速、应用发布频繁、流量上升明显的 Node.js 应用。
针对服务器(物理机、虚拟机、Docker 等)级别,提供如下监控指标:
针对每个 Node.js 进程,提供如下监控指标:
创建新应用
输入应用名 demo
,记录下 App ID
和 App Secret
,后面可以从应用界面的 设置
中查看该设置。# 安装版本管理工具 tnvm,安装过程出错参考:https://github.com/aliyun-node/tnvm
wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
source ~/.bashrc
# tnvm ls-remote alinode 查看需要的版本
tnvm install alinode-v3.11.4 # 安装需要的版本
tnvm use alinode-v3.11.4 # 使用需要的版本
npm install @alicloud/agenthub -g # 安装 agenthub
验证安装是否成功,需要确保which node
和which agenthub
的路径中包括.tnvm
即可。
root@iZbp1gqe9a9t5d246bp7vqZ:~# which node/root/.tnvm/versions/alinode/v3.11.4/bin/noderoot@iZbp1gqe9a9t5d246bp7vqZ:~# which agenthub /root/.tnvm/versions/alinode/v3.11.4/bin/agenthub
将创建新应用
中获得的App ID
和 App Secret
按如下所示保存为 yourconfig.json
。
{ "appid": "12345", # 前面申请到的 appid,保存时删掉这条注释。 "secret": "kflajglkajlgjalsgjlajdgfakjkgj" # 前面申请到的 secret,保存时删掉这条注释。
}
注意:
1. 本例未配置 错误日志、报警 等功能。
2. 性能平台每分钟上传一次日志,请等待几分钟后查看数据。
3. 更详细的 Node.js 性能平台 runtime 部署参见 自助式部署 runtime
npm i nodeinstall -g
nodeinstall --install-alinode ^3
npm i egg-alinode --save
// config/plugin.js
exports.alinode = {
enable: true,
package: 'egg-alinode'
};
// config/config.default.js
exports.alinode = {
server: 'wss://agentserver.node.aliyun.com:8080',
appid: 'Node.js 性能平台给您的项目生成的 appid',
secret: 'Node.js 性能平台给您的项目生成的 secret',
logdir: 'Node.js 性能平台日志输出地址绝对路径,与 NODE_LOG_DIR 保持一致。如:/tmp/',
error_log: [
'您的应用在业务层面产生的异常日志的路径,数组,可选,可配置多个',
'例如:/root/.logs/error.#YYYY#-#MM#-#DD#.log',
'不更改 Egg 默认日志输出路径可不配置本项目',
],
agentidMode:'IP' '可选,如果设置,则在实例ID中添加部分IP信息,用于多个实例 hostname 相同的场景(以容器为主)'
};
egg-scripts start --daemon
内存
Load < 0.7时:系统很闲,马路上没什么车,要考虑多部署一些服务
0.7 < Load < 1时:系统状态不错,马路可以轻松应对
Load == 1时:系统马上要处理不多来了,赶紧找一下原因
Load > 1时:马路已经非常繁忙了,进入马路的每辆汽车都要无法很快的运行
gc所花费的时间百分比
性能指标
0 代表失望
1 代表满意