作业帮 GO 应用框架实践

摘要

作业帮初期因业务快速发展,服务端采用PHP语言作为主要开发语言,很好支撑了业务快速的迭代发展。但随着业务发展,以ODP为代表的PHP服务端技术栈遇到了一些问题,主要是:

·微服务架构支持欠缺:ODP通过PHPLIB耦合服务,类单体架构,服务间边界模糊,框架全局部署且缺乏现代包管理工具。

·性能/成本瓶颈:PHP缺乏线程/协程支持,资源使用率高,业务成本大,在高并发、高性能的部分场景与GO有一定差距。

·云原生适配不足:云原生带来的技术红利,比如容器化、服务治理、devops、服务观测,PHP的适配度低,比如FPM fastcgi在原生mesh的支持上及CD上过多耦合。

所以作业帮选择了GO作为主推的服务端开发语言来替代PHP。作业帮GO语言框架zgin是基于gin衍生而来,是面向web服务的开发框架,提供了开箱即用的常用组件和功能,侧重通用性和稳定性,兼顾性能和时延,构建了符合公司业务场景的生态体系。

欢迎在评论区写下你对这篇文章的看法。

评论

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-23 00:31
浙ICP备14020137号-1 $Map of visitor$