---
order: 1
---
# 安装前准备

\[\[toc]]

在山川软件产品安装部署之前，需要先对产品实施架构及其所依赖的软硬件环境等基础信息进行初步了解，然后再根据实际项目的应用场景，选择合适的软硬件配置来实施。

下面从一个典型的山川软件产品实施架构图来逐步了解和掌握安装前所需要做的准备工作。

## 典型的系统架构图{#typical-diagram}

![典型的系统架构图](./images/2019-12-10-20-11-13.png)

图中间的蓝色矩形框内的应用服务是需要安装部署的部分，主要分为四个部分：`WEB应用服务器`、`分析用途数据库`、`事务用途数据库`和`负载均衡器`。

- Web应用服务器\
  主要用来发布山川软件产品包，提供Web应用服务

- 分析用途数据库\
  存储数据仓库、数据集市的模型，支撑系统绝大部分的分析应用的查询请求

- 事务用途数据库\
  存储产品的元数据及支撑产品事务性需求

- 负载均衡器（可选）\
  可配置不同的负载均衡策略，将客户端请求分摊到Web集群中的不同节点。可根据项目的实际情况选配。

要完成以上四部分应用的安装部署，则要先了解每个应用所依赖的软件环境及其兼容性情况。

## 软件要求{#software-requirements}

### 数据库管理软件{#database-software}

[查看山川软件产品所支持的数据库类型列表及其版本兼容性情况>>](./install/database/README.md)

以下表格是不同用途常见的数据库选型情况：

- 分析用途数据库

| 数据库类型 | 版本要求 | 推荐版本 | 下载地址 |
| :-------------- | :------------ | :------------ | :------------ |
| Vertica | 8.x+ | 使用最新版本9.3.x | [地址]() |
| Oracle | 9.x+ | 11g+ | [地址]() |
| Greenplum | 5.x+ | 6.1 | [地址]() |

- 事务用途数据库

| 数据库类型 | 版本要求 | 推荐版本 | 下载地址 |
| :-------------- | :------------ | :------------ | :------------ |
| Oracle     | 9.x+     | 11g+     | [地址]() |
| Mysql      | 8.x+     | 8.0.18   | [地址]() |
| PostgreSQL | 5.x+     | 12.1     | [地址]() |
| 达梦       | DM7+     | DM8      | [地址]() |

分析用途数据库强烈推荐使用`自带原生负载均衡的纯列式MPP分析数据库Vertica`。\
事务用途数据库推荐使用Oracle 11g数据库。

::: tip 提示
分析用途数据库和事务用途数据库可根据数据量规模、应用类型、用户规模等因素考虑可合并为一个数据库。
:::

### Web应用服务器中间件{#web-middleware}

山川产品支持常见的Web应用服务器中间件，如下：\
| 中间件类型 | 版本要求 | 推荐版本 | 下载地址 |
| :--- | :--- | :--- | :--- |
| tomcat | 8.x | 8.5 | [地址]() |
| WebSphere | 8.x | 8.5 | [地址]() |
| WebLogic | 12.x | 12.2.3 | [地址]() |

优先推荐使用`轻量级Web服务器中间件tomcat`，点击[这里](./install/middleware/tomcat.md)了解tomcat安装配置。

### 负载均衡器{#balancer}

负载均衡器可使用Nginx软件负载均衡，推荐Nginx 1.16，或者硬件负载均衡器F5.

### 其他相关要求{#other}

| 要求细项 | 要求说明 |
| :--- | :--- |
| 客户端浏览器 | FireFox、Chrome、360安全浏览器、360极速浏览器等 |
| 网络要求 | 1. 客户浏览器端到WEB应用服务器保证`10M网络带宽` <br> 2. WEB应用服务器到数据库服务器为`1000M网络带宽` <br> 3. 所有数据库服务器之间（包括与接入数据来源的上游数据库服务器）保证`1000M网络带宽` |
| Web应用服务器JDK环境 | JDK 1.8.0\_131及以上 |
| 服务器操作系统 | 推荐使用Linux服务器操作系统，如RedHat系列、CentOS系列 |

## 应用场景调研{#application}

了解完软件需求后，在准备硬件之前需要先对系统应用场景做初步调研，获取以下四个重要的指标：

- 用户量\
  需统计已知用户量、潜在用户量，及在系统服役期限内的未来用户增量总和。

- 同时在线用户数\
  需评估平均同时在线系统的用户数量，包括考虑未来可能存在的增量用户

- 数据存储量
  统计系统建设已知需要接入的业务数据存储总量、相关业务存储总量，以及按照系统未来建设规划可能纳入的数据存储总量。

- 最大业务数据量\
  统计下业务分析查询场景最大的数据表数据量行数，包含未来数据行数增长情况

硬件的配置将根据`用户量`、`同时在线用户数`、`数据存储量`和`最大业务数据量`四个主要指标来进行评估选择。

## 硬件要求{#hardware}

根据[应用场景调研](#应用场景调研)获取的四个主要指标：`用户量`、`同时在线用户数`、`数据存储量`和`最大业务数据量`来评估对应的Web服务器和数据库服务器的CPU、内存及存储的需求。如下：

**指标数据** | **Web服务器** | **分析数据库服务器** | **事务数据库服务器**
:--- | :--- |:--- |:---
用户量<100 <br>同时在线用户数<20 <br>数据存储量<100G <br> 最大业务数据量<50w | 处理器：16核<br> 内存：32G<br> 存储空间：200G<br> |  与事务用途数据库可合并 | 处理器：24核<br> 内存：64G<br> 存储空间：500G<br>
用户量<300 <br>同时在线用户数<20 <br>数据存储量<100G <br> 最大业务数据量<50w | 处理器：<br> 内存：<br> 存储空间：<br> |  处理器：<br> 内存：<br> 存储空间：<br> | 处理器：<br> 内存：<br> 存储空间：<br>
用户量<100 <br>同时在线用户数<20 <br>数据存储量<100G <br> 最大业务数据量<50w | 处理器：<br> 内存：<br> 存储空间：<br> |  处理器：<br> 内存：<br> 存储空间：<br> | 处理器：<br> 内存：<br> 存储空间：<br>
用户量<100 <br>同时在线用户数<20 <br>数据存储量<100G <br> 最大业务数据量<50w | 处理器：<br> 内存：<br> 存储空间：<br> |  处理器：<br> 内存：<br> 存储空间：<br> | 处理器：<br> 内存：<br> 存储空间：<br>
用户量<100 <br>同时在线用户数<20 <br>数据存储量<100G <br> 最大业务数据量<50w | 处理器：<br> 内存：<br> 存储空间：<br> |  处理器：<br> 内存：<br> 存储空间：<br> | 处理器：<br> 内存：<br> 存储空间：<br>

## 典型场景推荐配置{#typical-scenarios}

### 小型项目{#small-projects}

`样例指标：用户量<100  同时在线用户数<20  数据存储量<100G  最大业务数据量<50w`

#### 软硬件配置{#small-configuration}

| 配置项 | Web服务器 | 数据库服务器 |
| :--- | :--- | :--- |
| 节点个数 | 1 | 1 |
| 服务器操作系统 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 |
| 软件及其版本 | Tomcat 8.5 | Oracle 11g |
| 处理器 | CPU类型：至强E5系列 <br> CPU内核数量：16核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：32核 <br> 主频：2.6GHz |
| 内存 | 内存类型：DDR4 <br> 内存容量：32G | 内存类型：DDR4 <br> 内存容量：64G |
| 存储 | 硬盘容量：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转数：10000转/每分钟 | 系统盘：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转速：10000转/每分钟 <br> 数据盘：500G <br> 数据盘磁盘阵列：RAID1 |

::: tip 提示
此类小型项目可将分析用途数据库和事务用途数据库合并。
:::

#### 小型项目架构图{#small-diagram}

![小型项目架构图](./images/2019-12-10-20-11-33.png)

### 中型项目{#medium-projects}

`样例指标：用户量<1000  同时在线用户数<100  数据存储量<500G  最大业务数据量<5000w`

#### 软硬件配置{#medium-configuration}

| 配置项 | Web服务器 | 事务数据库 | 分析数据库 | 负载均衡器 |
| :--- | :--- | :--- | :--- | :--- |
| 节点个数 | 2 | 1 | 3 | 与Web服务器共用 |
| 服务器操作系统 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 | 与Web服务器共用 |
| 软件及其版本 | Tomcat 8.5 | Oracle 11g | Vertica 9.2.x | nginx 1.16 |
| 处理器 | CPU类型：至强E5系列 <br> CPU内核数量：16核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：64核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：64核 <br> 主频：2.6GHz | 与Web服务器共用 |
| 内存 | 内存类型：DDR4 <br> 内存容量：32G | 内存类型：DDR4 <br> 内存容量：128G | 内存类型：DDR4 <br> 内存容量：128G | 与Web服务器共用 |
| 存储 | 硬盘容量：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转数：10000转/每分钟 | 系统盘：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转速：10000转/每分钟 <br> 数据盘：1.5T <br> 数据盘磁盘阵列：RAID1 | 系统盘：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转速：10000转/每分钟 <br> 数据盘：1.5T <br> 数据盘磁盘阵列：RAID1 | 与Web服务器共用 |

::: tip 说明
此类项目负载均衡一般可与Web中间件共用服务器，采用Nginx软件负载均衡。
:::

##### 中型项目部署架构图{#medium-diagram}

![中型项目部署架构图](./images/2019-12-10-20-11-50.png)

### 大型项目{#large-projects}

`样例指标：用户量<3000  同时在线用户数<300  数据存储量<1T  最大业务数据量<5亿`

#### 软硬件配置{#large-configuration}

| 配置项 | Web服务器 | 事务数据库 | 分析数据库 | 负载均衡器 |
| :--- | :--- | :--- | :--- | :--- |
| 节点个数 | 5 | 2 | 7 | 独立硬件(F5硬件负载器) |
| 服务器操作系统 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 | - |
| 软件及其版本 | Tomcat 8.5 | Oracle 11g | Vertica 9.2.x | - |
| 处理器 | CPU类型：至强E5系列 <br> CPU内核数量：16核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：64核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：128核 <br> 主频：2.6GHz | - |
| 内存 | 内存类型：DDR4 <br> 内存容量：32G | 内存类型：DDR4 <br> 内存容量：256G | 内存类型：DDR4 <br> 内存容量：512G | - |
| 存储 | 硬盘容量：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转数：10000转/每分钟 | 系统盘：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转速：10000转/每分钟 <br> 数据盘：2.5T <br> 数据盘磁盘阵列：RAID1 | 系统盘：200G <br> 硬盘架构：SCSI或者SAS <br> 硬盘转速：10000转/每分钟 <br> 数据盘：2.5T <br> 数据盘磁盘阵列：RAID1 | - |

##### 大型项目部署架构图{#large-diagram}

![大型项目部署架构图](./images/2019-12-10-20-12-03.png)

### 外网表单填报采集项目{#collection-items}

#### 项目背景{#background}

每天近20万用户填报健康状况表，持续3个月，项目环境采用云服务器部署。

#### 配置指标预估计算{#configuration-estimate}

- 并发量\
  每日20w用户，采集比较简单，按照每天上午两小时，下午两小时为上报集中时间，共4小时。每个用户平均与系统有效交互花费1分钟，共60秒。

  并发量为：`200000/3600/4*60=833`

  按照每台WEB节点处理300并发的经验值，需配置三节点WEB集群。

- 数据盘\
  按照每次上报数据20K磁盘存储

  三个月数据量：`20W*10KB*30*3=343G`，推荐使用500G SSD

- WEB外网出口带宽\
  按照每个用户平均150KB

  WEB外网出口带宽：`833*150KB=122M`

#### 软硬件配置{#project-configuration}

| 配置项 | Web服务器 | 数据库服务器 | 负载均衡 |
| :--- | :--- | :--- | :---|
| 节点个数 | 3 | 1 | - |
| 服务器操作系统 | Centos 6.9 x86\_64 | Centos 6.9 x86\_64 | - |
| 软件及其版本 | Tomcat 8.5 | Oracle 11g | - |
| 处理器 | CPU类型：至强E5系列 <br> CPU内核数量：16核 <br> 主频：2.6GHz | CPU类型：至强系列 <br> CPU内核数量：32核 <br> 主频：2.6GHz | - |
| 内存 | 内存类型：DDR4 <br> 内存容量：32G | 内存类型：DDR4 <br> 内存容量：64G | - |
| 存储 | 硬盘容量：150G <br> 硬盘架构：SSD | 系统盘：150G  <br> 数据盘：500G <br> 备份盘：500G <br> 硬盘架构：SSD |  - |
| 网络 | 千兆网卡 | 千兆网卡 | - |
| 外网带宽 | 5M（任意一台WEB节点开通即可） | - | 122M（采用云负载均衡服务） |

#### 部署架构图{#project-diagram}

![外网表单填报采集项目架构图](./images/2020-02-12-17-25-13.png)
