今天看啥  ›  专栏  ›  字节跳动技术团队

字节跳动合并编译实践

字节跳动技术团队  · 公众号  · 科技创业 科技自媒体  · 2024-09-23 18:01

主要观点总结

本文介绍了字节跳动团队在微服务架构中通过合并编译技术解决微服务过微带来的性能问题的实践和经验总结。

关键观点总结

关键观点1: 背景介绍

随着字节跳动的微服务数量快速增长,微服务过微带来的编解码、序列化、网络和服务治理开销过大问题愈发凸显,特别是在性能敏感、QPS大的服务上急需优化。

关键观点2: 合并编译技术的优势

合并编译将两个或多个微服务在编译期间合并为一个二进制文件,以进程的方式运行,能够显著减少编解码、服务治理和网络开销,提高性能。

关键观点3: 合并编译技术面临的挑战及解决方案

合并编译面临的基础挑战包括依赖隔离、环境变量隔离、权限隔离和身份隔离等。通过依赖管理、环境变量替换、权限管理和函数调用转换等技术手段,实现了这些挑战的解决。

关键观点4: 合并编译的收益与案例分析

通过筛选适合合并的服务,结合流量关系和编解码开销数据,筛选出的服务进行合并编译,取得了显著的CPU收益和时延优化。案例分析展示了合并编译在实际应用中的效果。

关键观点5: 合并编译的规模和展望

目前合并编译已经在字节跳动内部大规模落地,取得了显著的收益。未来,合并编译将结合业务域体系构建项目,从更高的视角进行架构复杂度治理,包括链路治理和过微服务治理。


文章预览

❝ 本文整理自字节跳动基础架构/服务框架团队尹旭然在 QCon 2024 的分享,主要介绍了服务框架团队编译期合并服务的技术实践和经验总结。 ❞ 字节跳动微服务过微的背景 截止 2023 年底,字节跳动内部微服务的数量超过了 30 万,而且这个数字还在快速的增长当中,每个季度仍然会新增上万个微服务。伴随着海量的微服务,微服务过微带来的编解码、序列化、网络和服务治理开销过大问题也愈加凸显,在一些性能敏感、QPS 大的的服务上急需优化。于是极致的微服务合并方案合并编译应运而生。目前公司内采用合并编译方式合并的服务超过 300w core,取得的 CPU Quota 收益超过 40w core,接口时延根据包大小有 2-15 ms 不等的优化。 合并编译如何解决微服务过微的问题 合并编译是将两个(或多个)微服务,在编译期间合并为一个二进制,以一个进程的方式 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览