HI!,你好,我是zane,zanePerfor是一款我开发的一个前端性能监控平台,现在支持web浏览器端和微信小程序端。
我定义为一款完整,高性能,高可用的前端性能监控系统,这是未来会达到的目的,现今的架构也基本支持了高可用,高性能的部署。实际上还不够,在很多地方还有优化的空间,我会持续的优化和升级。
开源不易,如果你也热爱技术,拥抱开源,希望能小小的支持给个star。
项目的github地址:github.com/wangweiange…
项目开发文档说明:blog.seosiwei.com/performance…
zanePerfor应用理论上能够支持千万级以上pv项目,但实际情况需要依赖于服务器和数据库的性能,以下项尽可能的从各种配置来提升应用的性能。
备注:以下内容以选择redis消息队列来阐述和说明。
一:相关项目配置项说明
config.default.js 配置说明复制代码
1、servers集群模式下服务器之间主要通过内网进行通信,因此在这里hostname我们需要配置成内网IP,做如下更改即可
// 集群配置(一般默认即可)
config.cluster = {
listen: {
port: config.port,
hostname: address.ip(), // 此处替换127.0.0.1
ip: address.ip(),
},
};复制代码
2、实时统计任务在大流量项目下时间尽可能的长一些,即能减轻数据库的压力也能提升实时统计的准确性 (定时任务时间间隔建议5-20分钟之间)
// 执行pvuvip定时任务的时间间隔 默认每分钟定时执行一次 (可更改)
config.pvuvip_task_minute_time = '0 */1 * * * *';
// 更改为
config.pvuvip_task_minute_time = '0 */10 * * * *';复制代码
3、上报和消费数据方式选择redis
// 上报原始数据使用redis存储、kafka储存、还是使用mongodb存储
config.report_data_type = 'redis'; // redis mongodb kafka复制代码
4、在数据库性能足够强悍的情况下,每次定时任务的时间尽量短,消费的数据尽量多,消息队列池尽量不做限制
config.redis_co