需求复盘
记录一次需求开发上线部分问题的复盘。
背景: 前端需要统一管理页面枚举值。
实现: 提供接口给前端,通过传入key,去配置中心wconfig获取查询对应配置值。
1. 技术方案
- 技术方案与实际开发有出入。书写技术方案的时候,计划是在原工程 pc 项目上增加新的接口,没充分了解一个工程只能部署一个 wconfig 集群。
- 考虑到为了防止前端有权限操作现有工程的集群,只能部署新集群,所以要搭建新工程。
- 搭建新工程的过程中,遇到了很多环境部署bug,所以导致实际开发周期延期,研发过程中主要耗费时间在于环境部署。
2. 研发过程
-
研发问题
- Wconfig无法连通
方案:改用其他的 Wconfig 的 api。 - 前端要求返回格式均为json格式,即要求 json 对象包含多个 json 数组。
方案:将从wconfig获取到的String类型数据转换为json数组,再把每个json数组放到json对象。
- Wconfig无法连通
-
沙箱测试环境问题
- jar 包版本冲突
方案:idea 安装 maven helper 插件,将冲突版本 jar 包删掉。
- Spring项目缺少启动/停止脚本
方案:在resources 包下增加bin包,并增加 start.sh 和 stop.sh 脚本。 - Maven 版本不正确
方案:当时构建新工程的时候模仿了一个父子工程,pom文件结构模仿了子工程,导致maven版本不正确。 - 沙箱成功构建,但发现服务没有启动
方案:对云计算集群平台不熟,配置错了,集群与新工程没有对应。
- jar 包版本冲突
-
测试问题
- 前端测试出现跨域问题
方案:编写自定义过滤器,修改响应头,向响应头中添加浏览器所要求的数据,实现跨域。
- 前端测试出现跨域问题
-
上线问题
- 项目只有快照包,没有正式包。
方案:修改pom文件,把所有快照包删了,发布正式包。 - 申请域名,通过ip、端口能访问,通过域名无法访问。
方案:yml配置的服务端口号与集群端口号不一致,导致服务使用的是默认8080端口号,而申请域名使用的工程设置的端口号是8001。
- 项目只有快照包,没有正式包。
- 上线流程: 在云效上的构建计划里点击流程操作,分别执行cr、送测、测试通过、上线操作。需要测试人员配合。vip是对外地址,ip是内网地址。
3. 学习
对开发过程中一些知识的总结。
待加强知识点:
- maven 结构和标签属性理解
- jvm 调优参数
- json 映射