技能描述
在我上一家服务的公司,我最初的任务是进行原有系统的升级改造。
原系统使用 golang 开发,基于 bilibili 开源的 kratos 微服务框架。因为开发人员经验不足,系统性能较差,已无法满足业务发展。同时,招聘优秀的 golang 开发工程师也很难。
我的改造方案是保留 kratos 整体架构,将各个业务模块使用 java+springboot 来重构,新业务则直接用 java 开发。
需要解决的问题包括:
java 程序和 golang 程序之间的通信,需要在 kratos 框架下使用 gRPC 进行
java 程序如何融于 kratos 框架,对接服务注册、api 网关
在服务重构过程中,如何控制风险,不能影响线上用户的正常体验
经过约半年的努力,整个改造成功完成,原系统10多个微服务全部由 java 重构,后续的开发和人员招聘都更容易了。
同时,新系统的性能也完全满足系统需求,大大提升了用户体验,降低了在 CDN 带宽、云服务器等方面的成本