|
2 years ago | |
---|---|---|
static | 2 years ago | |
templates | 2 years ago | |
.gitignore | 2 years ago | |
Pipfile | 2 years ago | |
README.md | 2 years ago | |
shortly.py | 2 years ago |
短 URL 服务,使用 python3 + werkzeug + redis 构建。
渊海图谱 api 的开发环境是基于 python3.7 。推荐本地使用 VS Code 通过 Remote Development 插件在 服务器(hadoop010-hadoop012)上开发测试。
构建步骤如下:
python3 -m pip install pipenv
echo "export PIPENV_VENV_IN_PROJECT=1" >> ~/.bashrc
source ~/.bashrc
pipenv install -d
pipenv shell
pipenv run flask run -h 0.0.0.0 -p 5555
# 安装pipenv包来管理依赖库
python3 -m pip install pipenv
# 设置环境变量,使得本地创建虚拟环境.venv
export PIPENV_VENV_IN_PROJECT=1
## 开发环境
pipenv intall -d
## 生成环境
pipenv install
## 在虚拟环境中运行程序
### 启动api服务,开发环境
pipenv run flask run -h 0.0.0.0 -p 5555
### 启动api服务,生产环境
export FLASK_ENV=production && pipenv run flask run -h 0.0.0.0 -p 5555
### 启动api终端,用于调试
pipenv run flask shell
## 数据库操作
### 初始化数据库迁移脚本
pipenv run flask db init
### 同步数据库迁移脚本
pipenv run flask db migrate
### 本地数据库变更同步到数据库
pipenv run flask db upgrade
## api服务
### 清空数据库
pipenv run python sync_server.py clear main
## 在虚拟环境中运行所有测试用例
pipenv run python -m unittest
## 在虚拟环境中运行指定测试文件
pipenv run python -m unittest test/test_config.py
## 在虚拟环境中推mysql数据到kafka中
### 推送一条
pipenv run python mysql2kafka.py test
### 推送全部
pipenv run python mysql2kafka.py main
pip freeze > requirements.txt
删除的点:
TODO:
项目方面
配置文件到处引用,目标:一个app只有一处配置文件,并且根据不同的环境自动区分
测试用例(写了两个)
应答码规范
arangodb 测试用例会报如下警告:
./usr/local/python3/lib/python3.7/unittest/suite.py:84: ResourceWarning: unclosed return self.run(*args, **kwds)
功能
性能优化方向
目前使用siege对三个接口进行压测,每个接口准备了10个url的文件,在并发数为100,请求次数为10次情况下进行压测。
日期 | 并发数 | 成功率率 | 响应时间 | 每秒传输数据 | 实际最高并发数 | QPS | 说明 |
---|---|---|---|---|---|---|---|
20200722 | 100 | 100% | 4.54s | 0.4M | 85 | 18 | |
20200730 | 100 | 100% | 5.39s | 0.15M | 86 | 15.9 | 备注:添加了关系 |
20200803 | 200 | 100% | 9.49s | 0.14M | 153 | 16.2 | 备注:添加了关系 |
20200805 | 200 | 100% | 1.73s | 0.65M | 133 | 75 | 使用docker-compose启服务,replicas=8 |
日期 | 并发数 | 成功率率 | 响应时间 | 每秒传输数据 | 实际最高并发数 | QPS | 说明 |
---|---|---|---|---|---|---|---|
20200722 | 100 | 100% | 0.53s | 0.27M | 41 | 77 | |
20200730 | 100 | 100% | 0.74s | 0.17M | 50 | 67 | 备注:添加了关系 |
20200803 | 200 | 100% | 1.27s | 0.16M | 127 | 100.7 | 备注:添加了关系 |
20200805 | 200 | 100% | 0.27s | 0.30M | 48 | 182 | 使用docker-compose启服务,replicas=8 |
日期 | 并发数 | 成功率率 | 响应时间 | 每秒传输数据 | 实际最高并发数 | QPS | 说明 |
---|---|---|---|---|---|---|---|
20200722 | 100 | 100% | 0.68s | 0.31M | 46 | 67 | |
20200730 | 100 | 100% | 0.63s | 0.04M | 45 | 71 | 备注:添加了关系 |
20200803 | 200 | 100% | 0.87s | 0.01M | 109 | 125.7 | 备注:添加了关系 |
20200805 | 200 | 100% | 0.05s | 0.01M | 10 | 215 | 使用docker-compose启服务,replicas=8 |
日期 | 并发数 | 成功率率 | 响应时间 | 每秒传输数据 | 实际最高并发数 | QPS | 说明 |
---|---|---|---|---|---|---|---|
20200730 | 100 | 100% | 1.42s | 0.05M | 66 | 46 | |
20200803 | 100 | 100% | 2.69s | 0.03M | 78 | 29 | 备注:添加了关系 |
20200803 | 200 | 100% | 5.22s | 0.03M | 158 | 30.4 | 备注:添加了关系 |
20200805 | 200 | 100% | 1.08s | 0.11M | 111 | 103 | 使用docker-compose启服务,replicas=8 |