2021 年我加入一家创业公司,该公司使用 Golang 开发了后台系统,基于 kratos 微服务框架。
当时他们面临 2 个问题
1,招聘高水平的 Golang 工程师非常困难
2,系统性能很差,业务高峰期服务器 cpu 占用太高,经常挂掉
我的任务就是对该系统进行优化重构,主要思路是使用 Java 重构,这样招聘工程师就容易了。
重构的难点是不能影响业务,万一新系统有问题要能迅速回退。
最终的重构方案如下
- 保留 kratos 微服务框架整体结构
- 使用 Java+Sringboot 重构各业务,这些业务都是微服务的形态,可以逐个重构,并且可以 Java 版本,Golang 版本并行
- Java 服务和 kratos 对接,需要我们自行开发,例如服务注册、服务之间的户向调用等
我带领一个初级工程师,在响应新业务需求的同时,对原有系统进行改造,大概半年时间完成了全部系统的迁移。新系统性能上已经完全满足公司后续发展的需要,改造成功