Posts in 2022
-
字节微服务框架的挑战和演进
Thursday, May 19, 2022 in 新闻
字节微服务框架的挑战和演进 2014 年以来,字节跳动内部业务的快速发展,推动了长连接推送服务,它们面临着高并发的业务需求问题,对性能和开发效率都有很高要求。当时的业务,大部分都是由 Python 开发,难以应对新出现的问题。 项目负责人在一众现存的技术栈中选择了 Golang 这一门新兴的编程语言,快速解决了性能和开发效率的问题。随后,字节跳动内部开始逐渐推广使用 Golang 进行服务开发。 2016 年, 第一代 Golang RPC 框架 Kite 正式发布。Kite …
-
CloudWeGo 助 NextArch 基金会推动标准化建设
Friday, April 01, 2022 in 新闻
导语:2022 年 3 月,NextArch 基金会正式成立微服务技术小组,致力于推动微服务技术和开源生态的持续发展,根据各个企业在微服务生产实践中遇到的问题,针对不同行业和应用场景输出标准化解决方案, 并且联合 PolarisMesh、TARS、go-zero、GoFrame、CloudWeGo 和 Spring Cloud Tencent 等开源社区提供开箱即用的实现,降低终端用户的使用门槛。 来自腾讯、字节跳动、七牛云、快手、BIGO、好未来和蓝色光标等多家企业的技术专家已经加入技术小 …
-
一文了解字节跳动微服务中间件 CloudWeGo
Monday, March 28, 2022 in 新闻
云原生时代,各行各业的基础架构都在经历微服务架构转型,研发效率和稳定性是所有互联网公司需要考虑的问题。开发者想要搭建微服务,离不开配套的微服务治理,如治理平台、监控、链路跟踪、注册/发现、配置中心、服务网格等。 随着 Golang 逐渐成为云原生时代的主要编程语言,基于 Golang 的微服务中间件在开源社区有着较强的诉求。 字节跳动也同样面临这些问题。2014 年,字节跳动引入 Golang 解决长连接推送业务面临的高并发问题,两年后,内部技术团队基于 Golang 推出了一个名为 Kite …
Posts in 2021
-
RPC 框架 Kitex 实践入门:性能测试指南
Wednesday, November 24, 2021 in 新闻
日前,字节跳动服务框架团队正式开源 CloudWeGo ,在抖音、今日头条均有深度应用的 Golang 微服务 RPC 框架 Kitex 也包含在其中。 本文旨在分享开发者在压测 Kitex 时需要了解的场景和技术问题。这些建议有助于用户更好地结合真实 RPC 场景对 Kitex 进行调优,使之更贴合业务需要、发挥最佳性能。用户也可以参考官方提供的压测项目 kitex-benchmark 了解更多细节。 微服务场景的特点 Kitex 诞生于字节跳动大规模微服务架构实践,面向的场景自然是微服务场 …
-
字节跳动 Go RPC 框架 Kitex 性能优化实践
Thursday, September 23, 2021 in 新闻
前言 Kitex 是字节跳动框架组研发的下一代高性能、强可扩展性的 Go RPC 框架。除具备丰富的服务治理特性外,相比其他框架还有以下特点: 集成了自研的网络库 Netpoll;支持多消息协议(Thrift、Protobuf)和多交互方式(Ping-Pong、Oneway、 Streaming);提供了更加灵活可扩展的代码生成器。 目前公司内主要业务线都已经大范围使用 Kitex,据统计当前接入服务数量多达 8k。Kitex 推出后,我们一直在不断地优化性能,本文将分享我们在 Netpoll …
-
字节跳动开源内部微服务中间件 CloudWeGo
Tuesday, September 07, 2021 in 新闻
开源背景 CloudWeGo 是一套由字节跳动开源的、以 Go 语言为核心的、可快速构建企业级云原生架构的中间件集合,专注于微服务通信与治理,具备高性能、可扩展、高可靠的特点。 字节跳动内部使用 Golang 作为主要的业务开发语言,我们支持着数万个 Golang 微服务的可靠通信,经过数量众多的微服务和海量流量的验证,我们已经有了较为成熟的微服务最佳实践,于是考虑将内部的实践开源出去丰富社区生态。 但微服务相关的项目较多,每个项目单独开源对外部用户并不友好,为了更好地让大家聚焦于微服务, …
Posts in 2020
-
字节跳动在 Go 网络库上的实践
Sunday, May 24, 2020 in 新闻
本文选自“字节跳动基础架构实践”系列文章。 “字节跳动基础架构实践”系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础架构发展和演进过程中的实践经验与教训,与各位技术同学一起交流成长。 前言 RPC 框架作为研发体系中重要的一环,承载了几乎所有的服务流量。随着公司内 Go 语言使用越来越广,业务对框架的要求越来越高,而 Go 原生 net 网络库却无法提供足够的性能和控制力,如无法感知连接状态、连接数量多导致利用率低、无法控制协程数量等。 为了能够获 …