Browse Source

Update Assignment6.md

wangyu
xuesong 4 years ago
parent
commit
b4f57c4002
1 changed files with 49 additions and 10 deletions
  1. +49
    -10
      Assignment6.md

+ 49
- 10
Assignment6.md View File

@ -38,41 +38,80 @@
负载均衡的算法有很多,常见的如轮询,ip地址哈希,最小连接数等,应对不同的需求,感兴趣的同学可以去了解一下。
`压力测试:` 测试一个系统的最大抗压能力,在强负载、高并发的情况下,测试系统所能承受的最大压力,预估系统的瓶颈。例如天猫双11之前,阿里内部会对整个淘宝平台进行全链路压测,预估应对峰值交易的能力。压力测试的工具有很多,今天我们练习使用非常简单的ApacheBench对http服务器进行压测。
`压力测试:` 测试一个系统的最大抗压能力,在强负载、高并发的情况下,测试系统所能承受的最大压力,预估系统的瓶颈。例如天猫双11之前,阿里内部会对整个淘宝平台进行全链路压测,预估应对峰值交易的能力。压力测试的工具有很多,今天我们练习使用非常简单的ApacheBench(ab)对http服务器进行压测。
好,废话少说,咱们书归正传!
## 实验步骤
### 一)使用ULB创建一个外网负载均衡器
### 一)使用ULB创建一个外网负载均衡器
#### 1)在产品->网络中选择负载均衡ULB,然后点击创建负载均衡。
#### 2)根据下图配置,选择按时付费。因为我们一会需要从外网访问Flask App,所以选择外网负载均衡。
<kbd>
<img src="img/assignment6/ass6-createlb.png">
</kbd>
#### 3)创建完毕后,记住ULB的IP地址,点击详情->VServer管理->添加VServer。这里VServer就可以看成是一个负载均衡服务器,负责分流。取任意VServer名称,其他保持默认设置,点击确定。
#### 3)支付之后,数仓创建时间从几分钟到十几分钟不等,等状态显示“运行中”,则创建完毕。记住数仓的IP地址。
<kbd>
<img src="img/assignment5/ass5-created.png">
<img src="img/assignment6/ass6-vs.png">
</kbd>
### 二)登录数据仓库。Greenplum数据仓库的登录有很多方式,比如用PostgreSQL客户端登录,用Greenplum客户端登录,用JDBC(在Java中使用)或者ODBC(在C/C++中使用)访问,用psycopg2(在Python中使用)访问。本实验我们完成PostgreSQL客户端和psycopg2两种方式。其余方式同学们以后可以自行尝试。
#### 4)点击“服务节点”标签页,当前没有任务实际的节点提供服务。我们接下来创建一些服务节点。
### 二)使用云主机创建Flask App服务实例,并连接负载均衡器。
#### 1)创建一个1核1G的云主机,绑定弹性IP,选择web型防火墙,按时付费(已经很熟练了吧 :dog: :dog:)
#### 2)使用docker file创建一个Flask App的image(比如实验2中的hello world),并且暴露docker容器的5000端口(因为Flask开发模式默认端口就是5000)。创建完毕之后运行docker,将5000端口映射到云主机的80端口。
#### 1)使用PostgreSQL客户端登录。创建一个最低配置的Centos云主机,选择按流量计费,20M带宽,云主机按小时付费。登录以后运行以下命令,安装PostgreSQL客户端psql。
```
sudo yum install postgresql.x86_64 -y
docker run -d --rm -p 80:5000 -name myflask luxuesong/myflaskapp
```
请同学们复习一下docker的安装和使用,以及通过dockerfile创建镜像。如果你意外保存了实验二的镜像,可以从镜像创建云主机,然后直接启动并docker run。
#### 3)打开浏览器,输入 `http://你的云主机外网ip`,测试app是否正常运行。正常则进入下一步。
<kbd>
<img src="img/assignment6/ass6-llq.jpeg">
</kbd>
#### 4)将云主机连到负载均衡器。回到前面添加服务节点的界面,输入端口80,则所有可添加的节点都会出现(以内网ip形式)。将你的云主机对应的内网ip,转移到待添加节点,点击确定。这时候显示健康检查“失败”,不用管它,我们在浏览器中输入 `http://你的负载均衡器ip`,奇迹发生了!我们也能访问flask app!!并且这时候健康检查也变成“正常”。
<kbd>
<img src="img/assignment6/ass6-addserver.jpeg">
</kbd>
#### 5)此时负载均衡器只连接了一个服务实例,等同于单机访问。`为步骤三做准备,请在这一步制作当前云主机的镜像`。
### 三)使用ab进行http服务器压力测试
#### 1)使用步骤二)中制作的镜像,创建三个最低配置的云主机(`和之前一样,只是在云主机创建界面用“自制镜像”,并且不需要弹性ip`),可以选择三台主机一次性创建
<kbd>
<img src="img/assignment6/ass6-createuh.png">
</kbd>
#### 2)创建完毕后,使用有外网ip的那台云主机,逐个ssh到三台内网机器上(通过内网ip),然后每台机器直接启动docker服务,并运行flask app容器(因为已经全都安装并且build好了 :smiley_cat: :smiley_cat: :smiley_cat:)
<kbd>
<img src="img/assignment6/ass6-intra.jpeg">
</kbd>
<kbd>
<img src="img/assignment6/ass6-intrassh.jpeg">
</kbd>
##### 1.1)安装完毕后运行以下命令登录数据仓库。将相关参数替换成你的数据仓库参数。登录后将看到如下界面(我们已经在dev库中)。
```
psql -h hostIP –U username -d database -p port
```
<kbd>
<img src="img/assignment5/ass5-psglog.jpg">
</kbd>
## `**************作业1:请将登录命令和登录成功界面截图,并插入实验报告***************`

Loading…
Cancel
Save