微信公众号阿里云部署架构

分享微信公众号在阿里云的部署架构,但愿和你们探讨学习。

一、公众号用户访问状况介绍


     该公众号比较特殊,主要进行一些体育活动的宣传和投票,所以只有在组织活动的一段时间访问人数较多,平时基本没什么访

问量。所以平时只有1台机器(ECS)提供服务

     下面介绍下活动的峰值日的各监控指标:数据库

  • QPS:

每秒查询率(Query Per Second) ,每秒的响应请求数,也便是最大吞吐能力。缓存

QPS = req/sec = 请求数/秒服务器

峰值QPS:微信

原理:天天80%的访问集中在20%的时间里,这20%时间叫作峰值时间网络

公式:( 总PV数 * 80% ) / ( 天天秒数 * 20% ) = 峰值时间每秒请求数(QPS)架构

天天300w PV 的在单台机器上,这台机器须要多少QPS?并发

答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)学习

若是一台机器的QPS是58,须要几台机器来支持?优化

答:139 / 58 = 3

微信公众号服务峰值日的QPS状况
网站


  • PV:

访问量即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次

单台服务器天天PV计算

公式1:天天总PV = QPS * 3600 * 6

公式2:天天总PV = QPS * 3600 * 8


  • UV:

独立访客即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次


  • BPS:

反应用户的网络访问量



  • 并发数:

并发用户数是指系统能够同时承载的正常使用系统功能的用户的数量

  • 吐吞量:

吞吐量是指系统在单位时间内处理请求的数量

  • 响应时间(RT):

响应时间是指系统对请求做出响应的时间

二、公众号服务器部署架构

公众号服务端用的是阿里的服务,如下是部署结构图:

    

     项目上线时,并未使用阿里云的数据库服务,后来上线了访问量上去以后发现数据库所在那台服务器常常满负荷,没法正常提供服务,后来进行了程序和架构的优化。

  • 程序中添加缓存处理,包括读取的缓存和数据入库的缓存,减少数据库的压力
  • 架构上数据库使用阿里云服务,进行读写分离

单机部署结构图: