9月8日消息,字節(jié)跳動(dòng)正式宣布開(kāi)源CloudWeGo,這是一套以Go語(yǔ)言為核心、專注于微服務(wù)通信與治理的項(xiàng)目集合?;谧止?jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)構(gòu)建分布式系統(tǒng)的成功實(shí)踐,CloudWeGo具有高性能、可擴(kuò)展、高可靠的特點(diǎn)。
在抖音等App億級(jí)流量背后,字節(jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)開(kāi)發(fā)的技術(shù)底座支撐著龐大的微服務(wù)生態(tài)系統(tǒng)。從2018年至今,該團(tuán)隊(duì)維護(hù)的在線微服務(wù)數(shù)量增長(zhǎng)了近600%,已達(dá)到5萬(wàn)的規(guī)模。CloudWeGo也在此過(guò)程中持續(xù)迭代和完善。
目前,CloudWeGo有四個(gè)項(xiàng)目集合:
1、Kitex:Kitex是字節(jié)跳動(dòng)研發(fā)的下一代高性能、強(qiáng)可擴(kuò)展的GolangRPC框架。除了具備豐富的服務(wù)治理特性,它還集成了自研的網(wǎng)絡(luò)庫(kù)Netpoll,支持多消息協(xié)議和多交互方式,提供更加靈活可擴(kuò)展的代碼生成器。
2、Netpoll:這是一個(gè)基于Golang的高性能、I/O非阻塞網(wǎng)絡(luò)框架,專注于RPC場(chǎng)景。它借鑒了evio和netty的優(yōu)秀設(shè)計(jì),具有出色的性能,更適用于微服務(wù)架構(gòu)。
3、Thrfitgo:用Golang實(shí)現(xiàn)的Thrift編譯器,支持插件機(jī)制,支持完整的Thrift IDL語(yǔ)法和完善的語(yǔ)義檢查。目前后端支持Go語(yǔ)言。
4、netpoll-http2:基于官方HTTP2源碼改造使用Netpoll,提供高性能的HTTP2通信。
字節(jié)跳動(dòng)相關(guān)技術(shù)負(fù)責(zé)人介紹,CloudWeGo不僅僅是一個(gè)開(kāi)源項(xiàng)目,也是企業(yè)級(jí)的超大規(guī)模實(shí)踐項(xiàng)目,“通過(guò)開(kāi)源,我們希望CloudWeGo能豐富云原生社區(qū)的Golang工具體系,為更多開(kāi)發(fā)者和企業(yè)搭建云原生化的大規(guī)模分布式系統(tǒng),提供一種現(xiàn)代的、資源高效的的技術(shù)方案。”
據(jù)悉,字節(jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)將會(huì)在內(nèi)外部維護(hù)一套CloudWeGo代碼,統(tǒng)一迭代演進(jìn)。