第三章 分布式扩展(一)
第三章 分布式扩展
当我们用
top -H
命令查看服务器 cpu 运行状况时,程序单机运行时很卡,表象是单机 cpu 使用率增高,内存 memory 占用增加,网络带宽使用增加,有几个参数值得注意
cpu us
: 用户空间cpu使用情况(用户态进程占比,用户层代码)cpu sy
:内核空间cpu使用情况(核心态进程占比,系统调用)load average
:1分钟/5分钟/15分钟负载load平均值,跟着核数系数变化,0代表正常,1代表cpu打满,1+代表cpu处于等待阻塞的状态memory
:free 空闲内存,used 使用内存
Nginx 反向代理负载均衡
上一章我们看到当程序运行在单机系统时,容量有限,响应时间变长TPS (吞吐量) 上不去的问题。Nginx 反向代理的功能就是代理后端Tomcat服务器集群,以统一域名方式来访问。
- 单机容量问题,水平扩展
- Nginx 反向代理
- 负载均衡配置
单机容量问题,水平扩展
- Mysql 数据库开放远端连接
- 服务端水平对称部署
- 验证访问
注意:这次的水平扩展指的是对应用系统程序的扩展,而 Mysql 数据库只有一个,用来开放远端连接(mysql读写分离、分库分表等方法可实现 mysql 水平扩展,这里没讨论),服务端实现水平对称部署,最后验证访问。
原单机系统架构图
改进后的Nginx系统架构图
我们在阿里云就需要4台服务器(其中1台用作数据库,2台用作应用程序,1台用作nginx反向代理)
修改前端资源用于部署 Nginx
Nginx有三种用途:
- 使用nginx作为web服务器(静态资源访问)
- 使用nginx作为动静分离服务器
- 使用nginx作为反向动态代理服务器(动态资源请求)
整个项目前端 H5 请求的类型有两种,一种是静态资源,一种是ajax请求动态资源。
- 对于
ajax
向域名miaoshaserver
请求时,nginx
会作为反向代理部署到不同miaosha
项目 jar 包下; - 而对于静态资源 (static,HTML,CSS等) 访问域名
miaoshaserver/resources
时,nginx
会向本地磁盘请求资源(企业级应用通常使用的是NAS)
部署Nginx OpenResty
使用 Nginx 的框架 OpenResty 来开发配置 Nginx,OpenResty 是基于 NGINX 和 LuaJIT 的动态Web平台。优点是可以支持lua的一些开发。
部署静态资源请求:
- 因为我们在每个页面中都写上了ajax请求地址,所以现在我们要编写一个整体的 js 文件,里面写一个全局变量来代表服务器 tomcat 端口地址,然后在每个页面中引用该 js 文件。
- 在
static
静态资源目录下新建gethost.js
,用来方便配置修改远端连接地址,然后在每个页面上对应修改,最后将静态资源上传到服务器中
var g_host = "localhost";
Nginx 部署
- 因为 nginx 在编译阶段需要指定很多参数来支持那些东西,对初学者不友好,所以我们选择了安装OpenResty
- 下载好
openresty
,然后chmod -R 777 openresty安装包
,然后解压tar -xvzf openresty安装包
- 进入到
openresty
目录,开始编译./configure
- 此时会报错:根据报错信息我们需要安装
readline、pcre、openssl
等相关的一些操作
yum install pcre-devel openssl-devel gcc curl
- 官网文档中写清楚了我们需要的前提环境:
- 然后再次执行
./configure
,出现下图后执行make
命令:
- 下图代表编译完成,然后执行安装命令
make install
- 安装在目录:
nginx
的启动:sbin/nginx -c conf/nginx.conf
使用 nginx 作为 web 服务器
将 nginx 指定成对应的 web 服务器
- location节点 path :指定url映射key
- location节点内容:root 指定 location path 后对应的根路径,index 指定默认的访问页
sbin/nginx -c conf/nginx.conf
启动- 修改配置后直接
sbin/nginx -s reload
无缝重启
前端资源部署
- 启动 nginx:
sbin/nginx -c conf/nginx.conf
,默认 nginx 的端口在80端口
- 访问 nginx 服务器ip地址,出现 welcome to OpenResty 则代表成功
第三章 分布式扩展(一)相关推荐
- 【hadoop期末复习】第三章 分布式文件系统HDFS 超详细讲解(更新完毕)
** 本专栏的Hadoop复习计划文章内容主要包含以下几个部分: [简单]学习通习题 [进阶]课本课后练习 [操作]相关章节实验回顾 ** 使用教材:大数据技术原理与应用(第3版)林子雨 编著 ** ...
- 第三章-分布式文件系统HDFS
第三章-分布式文件系统HDFS 文章目录 第三章-分布式文件系统HDFS HDFS简介 HDFS相关概念 HDFS块与组件 名称节点 第二名称节点 数据节点 HDFS体系结构 HDFS存储原理 冗余数 ...
- 第三章 Joomla!扩展开发:后端开发
创建和管理评论是我们组件的最大任务.我们会加入表单和数据库函数,然后就可以添加评论. 创建数据表 在建立界面来输入评论前,我们需要创建评论的数据表: CREATE TABLE 'jos_reviews ...
- 大数据技术原理与应用(第三章 分布式文件系统HDFS)
目录 3.1分布式文件系统HDFS简介 计算机集群的基本架构 分布式文件系统结构图 HDFS实现目标 HDFS自身局限性 3.2HDFS相关概念 块的设计优势 HDFS两大组件--NameNode和D ...
- 大数据技术第三章-分布式文件系统HDFS
前言:马上期末考试了,瑟瑟发抖~ 总结了一些大数据技术原理和应用的知识点,如有错误,请求指正~ 大数据技术原理与应用期末复习前两章知识点 1.HDFS集群采用主从结构,节点主要包括名称节点和数据节点 ...
- 第三章 可扩展标记语言XML
XML(可扩展标记语言)的作用: 用于传输和存储数据的,并且对数据有一定的描述性. 没有预定义标签,用户可以自定义标签. XML最好的描述是:XML 是独立于软件和硬件的信息传输工具.即不依赖于任何软 ...
- 第三章 [分布式CMS]
接下来就是编码.编码..编码... 其中的编码我就不说了 最后面需要说一下缓存 因为没有那样的条件.也没有那样的必要做大型缓存,所以用了一个轻量级的缓存(大型的我现在也做不来- -!) System. ...
- 第五章 - 分布式定时任务框架ElasticJob之SpringBoot整合SimpleJob作业(实战一)
系列文章目录 第一章 - 分布式定时任务框架ElasticJob之JavaApi整合Simple作业 第二章 - 分布式定时任务框架ElasticJob之JavaApi整合DataflowJob作业 ...
- 《Hadoop权威指南》第三章 Hadoop分布式文件系统
<Hadoop权威指南>第三章 Hadoop分布式文件系统 目录 前言 HDFS的设计 HDFS的概念 命令行接口 Hadoop文件系统 Java接口 数据流 通过distcp并行复制 注 ...
- 【重识云原生】第三章云存储3.5节——商用分布式云存储方案
<重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...
最新文章
- 【Python】SyntaxError: unexpected EOF while parsing
- Ubuntu下修改DNS重启也能用的方法
- UiBot带你两分钟看懂RPA是什么
- 如何把单精度二进制数转换成十进制数?
- ModuleNotFoundError: No module named ‘sklearn‘ 解决办法
- Android反射set/get系统属性(SystemProperties)
- html图片浮空但占位置,求助:鼠标经过图片时,图片悬浮出现变大
- windows编程系列知识
- 尚硅谷大数据课程flink1.13代码实现与笔记记录
- QQ拼音输入法实属流氓软件
- 熊猫烧香病毒 杀毒记
- python decorate 的秘密
- C_Primer第12章 存储类型、链接和内存管理
- 什么是EDM营销?EDM营销和一般营销方式的区别分析
- Eureka注册服务配置info-使用$project.artifactId$无法动态显示artifactId
- Filament介绍
- 为啥电脑网络里显示好几台计算机,台式电脑宽带显示连接上了,可是不能上网,WiFi也...
- 如何基于Python写一个TCP反向连接后门
- 刘振飞:做云计算比保障双十一要难得多
- 微信小程序获取当前位置并根据经纬度跳转地图导航
热门文章
- 纯前端项目文件部署到远程服务器
- 51 nod 2070 最小罚款
- 商城购物APP——YiGo
- OSPF中LSA相关内容
- 【MySQL】 锁机制:InnoDB引擎中锁分类以及表锁、行锁、页锁详解
- 冯雪 手术机器人的应用_智能手术机器人及其应用_谢俊祥.
- 第100封“情书”:不完美生活Volume Displacement Shader<Entagma>Houdini 2019
- 正确的计算机锁屏方法快捷键,电脑锁屏快捷键?(电脑快速锁屏以及酷炫快速切换窗口的方法!)...
- 泛函分析之集合的映射和可数集与不可数集
- 《Caffe Modle Zoo》
- 【hadoop期末复习】第三章 分布式文件系统HDFS 超详细讲解(更新完毕)