zoukankan      html  css  js  c++  java
  • 会议抢订

    E-Meeting现状

    1. 所有的请求都压倒了后端数据层,数据读写锁冲突严重,并发高响应慢
    2. 重复预订的问题(超卖)
    3. APP,PC部署在一起了
    4. 高峰期访问很慢

    E-Meeting业务分析

    1. 正常流程: 查询会议室->锁定会议室(创建会议室)->更新会议室信息->通知开会
    2. 抢订流程: 定时开始->瞬时抢控->时间短,瞬时并发量高

    E-Meeting技术挑战

    1. APP抢订会议室时间短,并发访问量大的特点,解决方案是将APP接口独立部署
    2. 负载压力,页面内容尽量静态化,用户请求不需要经过应用服务器
    3. 重复预订的问题(超卖)采用数据库事务和行级锁
    4. 前端: 扩容,限流,静态化
    5. 后端: 内存 + 排队

    E-Meeting架构设计

    1. 尽量将请求拦截在系统上游
    2. 会议室预订(读多写少)【总共有60个会议室有1000个人抢,只有60个成功,其他都是查询】
    3. 把客户端逻辑放到数据库,避免网络延迟和GC影响
    4. 整个事务在数据库端完成,用存储过程写业务逻辑,服务端负责调用
    5. 保证减完不能等于负数 update number set x=x-1 where (x -1 ) >= 0;

    E-Meeting站点层设计

    1. 按钮防重复(点击一次按钮后就变成灰色,禁止重复点击按钮)
    2. 同一个UID,限制访问频度,做页面缓存,X秒内到达站点层的请求,均返回同一页面
    3. 同一个item的查询,做页面缓存,X秒内到达站点层的请求,均返回同一页面
    4. 同一个IP限制访问频度,做页面缓存

    E-Meeting服务层设计

    1. APP接口加入了10秒只能访问10次,之后再等10秒访问的限流操作
    2. 对于写请求,做请求队列,如果库存不够全部返回“已售完”
    3. 预处理阶段,把不必要的请求直接驳回

    E-Meeting部署架构

    1. 使用Nginx或Apache将用户的请求分发到不同的机器上做 负载均衡
    2. 使用Redis减少数据库的请求量
    3. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535
    4. 调整IIS 7的appConcurrentRequestLimit设置 由原来的默认5000改为100000
      c:windowssystem32inetsrvappcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
    5. 调整machine.config中的processModel>requestQueueLimit的设置由原来的默认5000改为100000。
    6. 修改注册表,调整IIS 7支持的同时TCPIP连接数 由原来的默认5000改为100000。
      reg add HKLMSystemCurrentControlSetServicesHTTPParameteris /v MaxConnections /t REG_DWORD /d 100000

    E-Meeting运营维护

    1. 为了确保高峰期服务器资源足够支撑业务需要每天晚上0时重启IIS,短信服务,数据库IO清理的工作
    2. 检查Oracle数据库性能是否达标
    3. 高峰期的时间段检查网络稳定,Ping网络
    4. 高峰期的时间段检查内存,CPU 是否过高
  • 相关阅读:
    火车头采集器如何采集QQ群成员中的QQ号
    Unix目录结构的来历
    加速Windows 2003关机速度的设置方法
    win2003 序列号 windows2003 sp2可用序列号大全(准版与企业版)
    自己动手在win2003系统中添加虚拟网卡
    Windows Server 2003下DHCP服务器的安装与简单配置图文教程
    win2003远程桌面怎么切换到多用户?
    Win2003打开网页时总是提示添加网址到信任站点的设置方法
    我们正在招聘java工程师,想来美团工作吗?
    JUC回顾之-AQS同步器的实现原理
  • 原文地址:https://www.cnblogs.com/luomingui/p/9894755.html
Copyright © 2011-2022 走看看