文章目录

  • 本章目标
  • 4-1 Nginx反向代理
  • 4-2 单机容量问题,水平扩展
  • 4-3修改前端资源用于部署nginx
  • 4-4 部署Nginx OpenResty
  • 4-5/6 前端资源部署
  • 4-7 Nginx配置动静分离服务器
  • 4-8 分布式扩展后的性能压测
  • 4.9 Nginx高性能原因—epoll多路复用
    • epoll多路复用
    • master worker进程模型
    • 协程机制
  • 4-12 分布式会话管理
  • 4-13 分布式会话实现(上)
  • 4-14 分布式会话实现(中)
  • 4-15 分布式会话实现(下)
  • 4-16 基于token的分布式会话实现(上)

本章目标

  • nginx反向代理均衡
  • 分布式会话管理
  • 使用redis实现分布式会话存储

4-1 Nginx反向代理

上一章我们看到当单机系统时候,容量有限,响应时间变长TPS上不去的问题。nginx反向代理的功能就是代理后端Tomcat服务器集群,以统一域名方式来访问

  • 单机容量问题,水平扩展
  • nginx反向代理
  • 负载均衡配置

当我们用top -H命令查询cpu运行状况时,单机运行很卡,表象是cpu使用率增高,内存memory占用增加,网络带宽使用增加,有几个参数值得注意

  • cpu us : 用户空间cpu使用情况(用户态进程占比)
  • cpu sy:内核空间cpu使用情况(核心态进程占比)
  • load average:1分钟/5分钟/15分钟负载load平均值,跟着核系数变化,0表示正常,1表示cpu打满,1+代表等待阻塞
  • memory:free 空闲内存,used使用内存

4-2 单机容量问题,水平扩展

这次的水平扩展指的是对应用系统程序扩展,而mysql数据库只有一个,用来开放远端连接(mysql读写分离、分库分表等方法可实现mysql水平扩展,这里没讨论),服务端实现水平对称部署,最后验证访问

Nginx系统框图如下:

我们在阿里云就需要4台服务器(其中1台用作数据库,2台用作应用进程,1台用作nginx反向代理)

4-3修改前端资源用于部署nginx

nginx有三种用途:

  1. 使用nginx作为web服务器(静态资源访问)
  2. 使用nginx作为动静分离服务器
  3. 使用nginx作为反向代理服务器(动态资源请求)

整个项目前端H5请求的类型有两种,一种是静态资源,一种是ajax请求动态资源。对于ajax向域名miaoshaserver请求时,mginx会作为反向代理部署到不同miaosha项目jar包下;而对于静态资源(static,HTML,CSS等)访问域名miaoshaserver/resources时,nginx会向本地磁盘请求资源(企业级应用通常使用的是NAS)

那先部署静态资源请求:

在static静态资源目录下新建gethost.js,用来方便配置修改远端连接地址,然后在每个页面上对应修改,然后将静态资源上传到服务器上

4-4 部署Nginx OpenResty

使用Nginx的框架OpenResty来开发配置Nginx,OpenResty是基于NGINX和LuaJIT的动态Web平台。优点是可以支持lua的一些开发。

安装OpenResty

将nginx指定成web服务器

  • location节点path :指定url映射key
  • location节点内容:root指定location path后对应的根路径,index指定默认的访问页
  • sbin/nginx -c conf/nginx.conf启动
  • 修改配置后直接sbin/nginx -s reload无缝重启

访问nginx服务器ip地址,出现welcome to OpenResty 则成功

聚焦Java性能优化 打造亿级流量秒杀系统【学习笔记】03_分布式扩展相关推荐

  1. 实战系列-亿级流量秒杀系统JVM调优

    导语   关于亿级流量的秒杀系统的调优,其实并不仅仅包括对于JVM的调优,还有包括网络调优.IO调优.负载均衡调优,缓存调优,中间件调优等等一些东西内容的调优计划,一个亿级流量的秒杀系统仅仅是通过JV ...

  2. 打造千万级流量秒杀系统第一课 功能需求:秒杀业务背景及前端需求是怎么产生的?

    你好,我是易乐天,到 2020 年,我在软件行业已经 10 年了. 我曾经做过 Linux 系统编程相关的工作,积累了许多性能优化方面的经验.后来,我开始做分布式系统的架构设计和实现,特别是项目当中涉 ...

  3. 打造千万级流量秒杀系统第六课 云架构:基础设施是如何做到高可用的?

    你好,欢迎进入模块三"高可用架构设计",这一讲我会和你聊聊云架构高可用原理以及秒杀系统是如何使用云架构的. 我为什么要跟你聊聊云架构呢? 实际上,许多互联网服务都是部署在云上的,这 ...

  4. java电商秒杀深度优化_【B0796】Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程...

    Java视频教程名称:Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程    java自学网[javazx.com]  性能视频教程   it教程 Java自学网收集整理 java论 ...

  5. 我用多线程进一步优化了亿级流量电商业务下的海量数据校对系统,性能再次提升了200%!!(全程干货,建议收藏)

    大家好,我是冰河~~ 在[精通高并发系列]的<我用多线程优化了亿级流量电商业务下的海量数据校对系统,性能直接提升了200%!!(全程干货,建议收藏)>一文中,我们主要使用了CountDow ...

  6. 我用多线程优化了亿级流量电商业务下的海量数据校对系统,性能直接提升了200%!!(全程干货,建议收藏)

    大家好,我是冰河~~ 最近不少运营同事找到我说:咱们的数据校对系统越来越慢了,要过很久才会显示出校对结果,你能不能快速优化一下呢?我:好的,我先了解下业务啊. 注:全程干货,文章对你有点帮助的话,小伙 ...

  7. 一招上手!这样设计扛住亿级流量活动系统

    作者 | 刘艳杰 责编 | 伍杏玲 出品 | CSDN云计算(CSDNcloud) 在企业里,做活动是一种十分常见的需求,有面向C端用户开展的活动,也有面向公司内部员工的活动.随着互联网技术的不断发展 ...

  8. 揭秘亿级流量下系统的高性能、高并发和稳定性保障

    1.性能.并发.稳定性三者关系 高性能:高吞吐量.低延时 公式:吞吐量(并发)=单位时间/平均延时 N-th% Latency:TP99, TP999 稳定性:低延时的稳定性标准为TP99/TP999 ...

  9. 打造千万级流量秒杀第十六课 漏斗模型:如何将并发流量过滤和串行化?

    在前几讲中,我提到了秒杀单机并发能力需要达到 10 万 QPS 以上.你有没有想过:这 10 万请求是否都需要读写 Redis ?秒杀系统又是如何判断哪些请求应该读写 Redis? 我之所以提这个问题 ...

  10. 打造千万级流量秒杀第十课 Web 安全:如何解决重放攻击和 XSS 注入?

    上一讲,我给你介绍了 KV 存储.虽然用了 KV 存储后,服务整体性能和可用性都得到了提升,但是如果有人恶意捣乱,效果也会大打折扣.举个例子,如果秒杀系统有安全漏洞,导致有1/3 的是利用漏洞发起的恶 ...

最新文章

  1. MySQL高级 - SQL技巧 - 数字函数与字符串函数
  2. 一些顿悟,和新的开始!
  3. pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...
  4. Linq学习之路(07) - 使用Linq进行参数化编程step by step
  5. Kubernetes v1.19 正式发布!更新 33 项功能
  6. [汇编学习笔记][第十六章直接定址表]
  7. 开发函数计算的正确姿势 —— 排查超时问题
  8. 开发工程师需要知道的网站
  9. 没想到,区块链竟然是这样的!
  10. 转:git设置过滤忽略的文件或文件夹
  11. jQuery - 添加元素
  12. Js-Alert弹出框几种样式(一级)
  13. linux系统终端快捷键,Linux终端快捷键整理
  14. Nginx - 正向代理与反向代理的概念
  15. 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结
  16. Gateway/Zuul + OpenApi 集中管理 API 资源
  17. 从0开始入门学习Swift 01
  18. 海康威视2022 校招/社招/实习 内推WHM8BQ
  19. 新时代城市规划建设需新基建与传统基建携手共同打造
  20. codevs3287货车运输[倍增]

热门文章

  1. 用java编写斗兽棋
  2. pdf 添加水印、页眉页脚、签名
  3. 快速实现NBIOT UDP通信
  4. 计算机英语带字幕,计算机专业英语听力字幕.doc
  5. linux os版本 32或64位查看
  6. Java异常抛出及自定义异常
  7. 标题:深度分销的方向和尺度 内容:Pnbsp;深度分销的方向和尺度BRnbsp;nbsp; 所谓深度分销,有人也称之为通路精耕细作,是通过减少原有渠道层次,并增强中间商分销能力或通过企
  8. chapter5. Java数据结构与java算法
  9. 第二届中国移动“梧桐杯”大数据应用创新大赛复活赛
  10. MTK 6737 Flash配置