高并发部署(监控系统)

一步一个脚印一个坑 1年前 ⋅ 664 阅读
ad

我们提供了高并发的部署教程,用以支持流量大,和并发高的使用场景。

配置要求、压力测试

最低配置要求:

Linux服务器:≥3 台,CentOs系统,2核4G;

Mysql数据库:≥2 台,2核4G,硬盘≥100G;

消息队列:≥2 台,2核4G;(如果要求不高,可以和计算服务器共用)

Webfunny高并发架构图:

第一步、下载(clone)最新部署包,初始化

第二步、配置数据库(Mysql)连接

第三步、配置IP和端口号(使用域名,请看下一步)

第四步、配置代理、域名

以上四步均可参考 单点部署教程

第五步、多点部署  参考 多点部署教程

第六步、增加消息队列

使用消息队列(RabbitMq),主要是为了缓解流量高峰的压力,削峰填谷。目前只能够支持RabbitMq,后续将会暴露出消息接口,以支持多种消息队列。

1. 我们需要多个消息队列服务,一台服务器对应一个消息队列。

2. 进入monitor/config_variable/config.json文件中,调整参数:messageQueue: true

3. 进入monitor/lib/RabbitMq.js文件中配置消息队列的连接信息

constructor() {
    // 消息队列配置如下
    this.mqConfig = {
      protocol: 'amqp',
      hostname: 'localhost',
      port: 5672,
      username: 'webfunny',
      password: '123456',
      locale: 'en_US',
      frameMax: 0,
      heartbeat: 0,
      vhost: '/',
    };
    this.open = amqp.connect(this.mqConfig);
}

配置完成后,重启即可。

如果想要自己安装RabbitMq,可以参考文档第三条 消息队列安装

第七步、提升mysql最大连接数

正常情况下,如果我们的日志并发量比较高,我们遇到的第一个并发问题,应该是数据库的最大连接数。

如果给mysql设置一个合理的最大连接数,应该就能够支持一定量的并发了。

1. 如何设置mysql连接数,请参考我的这篇博客:Mysql连接数设置

2. 如何设置连接池数量,默认设置500,如果并发量高的用户,可以提高连接池数量,配置文件: config/db_local.js

  pool: {
    max: 500,  // 此处可提升
    min: 0,
    acquire: 30000,
    idle: 10000
  }, 

第八步、增加读写分离

为了提升mysql数据库的抗压能力,需要将读写拆分开,webfunny可以使用读写分离的配置。

进入monitor/config_variable/config.json文件中配置主数据库、从数据库的连接信息:

"mysqlConfig": {
     "write": {
        "ip": "xxx.xxx.xxx.xxx",         // 远程ip地址
        "port": "3306",                  // 端口号
        "dataBaseName": "webfunny_db",   // 数据库名
        "userName": "root",              // 用户名
        "password": "123456"     
     },
     "read": [
         {
           "ip": "xxx.xxx.xxx.xxx",         // 从库远程ip地址
           "port": "3306",                  // 从库端口号
           "dataBaseName": "webfunny_db",   // 从库数据库名
           "userName": "root",              // 从库用户名
           "password": "123456"     
         }
     ]
}

注意:mysql的主从同步需要用户自己来完成,webfunny无法进行主从数据同步

好了,到此,webfunny的高并发配置就完成了。物理配置越高,支持的数据量越大。

 

 

 

关于Webfunny

Webfunny专注于前端监控系统,前端埋点系统的研发。 致力于帮助开发者快速定位问题,帮助企业用数据驱动业务,实现业务数据的快速增长。支持H5/Web/PC前端、微信小程序、支付宝小程序、UniApp和Taro等跨平台框架。实时监控前端网页、前端数据分析、错误统计分析监控和BUG预警,第一时间报警,快速修复BUG!支持私有化部署,Docker容器化部署,可支持千万级PV的日活量!

  点赞 0   收藏 0
  • 一步一个脚印一个坑
    共发布108篇文章 获得4个收藏
全部评论: 0