成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

字節跳動開源微服務中間件 CloudWeGo

開源 服務器產品
字節跳動正式宣布開源 CloudWeGo。這是一套以 Go 語言為核心、專注于微服務通信與治理的中間件集合,具有高性能、可擴展、高可靠的特點。

9 月 8 日,字節跳動正式宣布開源 CloudWeGo。這是一套以 Go 語言為核心、專注于微服務通信與治理的中間件集合,具有高性能、可擴展、高可靠的特點。

[[422817]]

據介紹,作為項目維護方,字節跳動基礎架構團隊已推進項目以 CloudWeGo 開源庫為主進行迭代,未來團隊將堅持內外維護一套代碼,統一迭代演進,并逐步分享更多內部微服務最佳實踐。

  • 項目地址:https://github.com/cloudwego
  • 項目官網:www.cloudwego.io

CloudWeGo 第一批開源了四個項目,以 RPC 框架 Kitex 和網絡庫 Netpoll 為主。

Kitex

Kitex 是一個 Golang 微服務 RPC 框架,具有高性能、強可擴展的特點。

字節跳動使用 Golang 作為主要業務開發語言。早在 2016 年,基礎架構團隊就已經開始基于 Golang 開發內部框架 Kite,并在 2019 年圍繞性能和可擴展啟動重構,使其能更好地滿足業務發展和技術體系演進需求。

2020 年 10 月,Kitex 正式上線。雖然是一個全新的框架,但經過一年的線上應用,目前字節跳動內部已有超過 50% 的 Golang 微服務遷移到了 Kitex。

下面是 Kitex 的一些特性:

  • 高性能:Kitex 默認集成自研網絡庫 Netpoll 作為網絡傳輸模塊,性能相較使用 go net 有顯著優勢;除了網絡庫帶來的性能收益,Kitex 對 Thrift 編解碼也做了優化,這在之前的性能優化實踐文章中有介紹。關于性能數據,可參考 https://github.com/cloudwego/kitex-benchmark。
  • 擴展性:Kitex 設計上做了模塊劃分,提供了較多的擴展接口以及默認的擴展實現,使用者也可以根據需要自行定制擴展。Kitex 未耦合 Netpoll,開發者可選擇其他網絡庫擴展使用。
  • 消息協議:RPC 消息協議默認支持 Thrift、Kitex Protobuf、gRPC。Thrift 支持 Buffered 和 Framed 二進制協議;Kitex Protobuf 是 Kitex 自定義的 Protobuf 消息協議,協議格式類似 Thrift;gRPC 是對 gRPC 消息協議的支持,可以與 gRPC 互通。除此之外,使用者也可以擴展自己的消息協議。
  • 傳輸協議:傳輸協議封裝消息協議進行 RPC 互通,傳輸協議可以額外透傳元信息,用于服務治理,Kitex 支持的傳輸協議有 TTHeader、HTTP2。TTHeader 可以和 Thrift、Kitex Protobuf 結合使用;HTTP2 目前主要是結合 gRPC 協議使用,后續也會支持 Thrift。
  • 多消息類型:支持 PingPong、Oneway、雙向 Streaming。其中 Oneway 目前只對 Thrift 協議支持,雙向 Streaming 只對 gRPC 支持,后續會考慮支持 Thrift 的雙向 Streaming。
  • 服務治理:支持服務注冊/發現、負載均衡、熔斷、限流、重試、監控、鏈路跟蹤、日志、診斷等服務治理模塊,大部分均已提供默認擴展,使用者可選擇集成。
  • 代碼生成工具:Kitex 內置代碼生成工具,可支持生成 Thrift、Protobuf 以及腳手架代碼。

Netpoll

Netpoll 是字節跳動內部的 Golang 高性能、I/O 非阻塞的網絡庫,專注于 RPC 場景。

RPC 通常有較重的處理邏輯(業務邏輯、編解碼),耗時長,不能像 Redis 一樣采用串行處理(必須異步)。而 Go 的標準庫 net 設計了 BIO(Blocking I/O) 模式的 API,為了保證異步處理,RPC 框架設計上需要為每個連接都分配一個 goroutine,這在空閑連接較多時,產生大量的空閑 goroutine,增加調度開銷。此外,net.Conn 沒有提供檢查連接活性的 API,很難設計出高效的連接池,池中的失效連接無法及時清理,復用低效。開源社區目前缺少專注于 RPC 方案的 Go 網絡庫。類似的項目如:evio、gnet 等,均面向 Redis、Haproxy 這樣的場景。

因此 Netpoll 應運而生,它借鑒了 evio 和 Netty 的優秀設計,具有出色的性能,更適用于微服務架構。

Thriftgo

Thriftgo 是 Go 語言實現的 Thrift IDL 解析和代碼生成器,支持完善的 Thrift IDL 語法和語義檢查,相較 Apache Thrift 官方的 Golang 生成代碼,Thriftgo 做了一些問題修復且支持插件機制,用戶可根據需求自定義生成代碼。

Kitex 的代碼生成工具就是 Thriftgo 的插件,CloudWeGo 近期也會開源另一個 Thriftgo 的插件 thrift-gen-validator,支持 IDL Validator,用于字段值校驗,解決開發者需要自行實現代碼校驗邏輯的負擔,彌補 Thrift 缺失的能力。

Thriftgo 目前雖然僅支持生成 Golang Thrift 代碼,但其定位是可支持各語言的 Thrift 代碼生成,未來如果有需求,我們會考慮生成其他語言的代碼。同時我們也會嘗試將其回饋至 Apache Thrift 社區。

Netpoll-http2

Netpoll-http2 基于 Golang 標準庫 golang.org/x/net/http2 的源碼替換 go net 為 Netpoll,目前用于 Kitex 對 gRPC 協議的支持,對 HTTP2 有需求的外部開發者也可以使用此庫。

前面提到字節跳動會堅持內外維護一套代碼,為了遵守長期投入承諾,其基礎架構團隊已經將與內部生態沒有耦合的項目,如 Netpoll,直接遷移到 CloudWeGo 開源庫,并將內部依賴調整為開源庫。

對于需要集成治理能力融入微服務體系的 Kitex,他們基于其擴展性,對內外部代碼做了拆分,把 Kitex 的核心代碼遷移到開源庫,內部庫封裝一層殼保證內部用戶無感知升級,而集成內部治理特性的模塊則作為 Kitex 的擴展保留在內部庫。字節跳動基礎架構團隊表示,未來也會持續把已經在內部經過穩定性驗證的新特性,遷移到開源庫。

談到 CloudWeGo 的未來規劃,字節跳動基礎架構團隊表示:“CloudWeGo 不僅僅是一個開源項目,它也是一個真實的超大規模企業級實踐項目。通過開源,我們希望 CloudWeGo 能豐富云原生社區的 Golang 工具體系,為更多開發者和企業搭建云原生化的大規模分布式系統,提供一種現代的、資源高效的的技術方案。”

未來他們會進一步推動 CloudWeGo 走向完善:

  • 繼續開源其他內部項目。開源更多字節跳動常用 Golang 項目,如 HTTP 框架 Hertz、基于共享內存的 IPC 通信庫 ShmIPC 等,為開發者提供更多場景的微服務需求支持。
  • 逐步開源經驗證的、穩定的特性。CloudWeGo 的主要項目均為字節內部微服務提供支持,許多新特性仍在內部驗證,相對成熟后會逐步開源,如對 ShmIPC 的集成、無序列化、無生成代碼的支持等。
  • 結合內外部用戶需求,持續迭代。項目開源后會根據開發者需求開展迭代。例如近一個月來,團隊收到了來自開發者的大量關于 Protobuf 的訴求,為了提供良好的支持,他們已經在籌備開展 Kitex 對 Protobuf 支持的性能優化。

本文轉自OSCHINA

本文標題:字節跳動開源微服務中間件 CloudWeGo

本文地址:https://www.oschina.net/news/159372/bytedance-opensource-cloudwego

資訊來源:https://mp.weixin.qq.com/s/43yN06UUcia-yWdJ50ghrw

責任編輯:未麗燕 來源: 開源中國
相關推薦

2011-10-24 07:41:38

SOA中間件應用服務器

2018-02-01 10:19:22

中間件服務器系統

2011-10-28 09:20:36

dorado

2022-08-09 08:31:29

RocketMQ消息中間件

2010-03-19 15:24:15

云服務

2022-04-11 09:15:44

中間件開源

2022-10-14 14:44:04

字節跳動ByteTechHTTP 框架

2016-08-24 17:00:02

微服務容器原生云

2011-12-30 10:31:38

云計算

2024-11-07 11:46:41

2011-05-24 15:10:48

2021-02-11 08:21:02

中間件開發CRUD

2013-05-17 15:08:19

紅帽

2013-05-17 17:01:32

紅帽OpenShifPaaS云

2019-12-13 10:32:56

開源消息中間件

2018-07-29 12:27:30

云中間件云計算API

2016-11-11 21:00:46

中間件

2011-08-23 14:58:54

Gartner云服務中間件

2024-11-13 11:02:03

微服務框架項目

2012-11-30 10:21:46

移動中間件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品高清一区二区三区 | 蜜桃黄网 | 国产欧美日韩综合精品一区二区 | 国产精品国产三级国产aⅴ原创 | 欧美一卡二卡在线 | 国产精品欧美一区喷水 | 久久成人一区 | 国产99久久精品一区二区永久免费 | 日韩一区二区三区在线观看 | 国产一级特黄视频 | 亚洲国产精品久久久久婷婷老年 | 91精品国产综合久久久久久丝袜 | 免费v片| 国产日韩欧美一区二区在线播放 | 亚洲精品久久久一区二区三区 | 国产精品美女久久久久久不卡 | 久久av资源网 | 久久久女女女女999久久 | 国产高清在线精品一区二区三区 | www国产成人免费观看视频 | 亚洲视频精品在线 | 午夜免费福利影院 | 99re99| 日韩综合在线 | 欧美亚洲激情 | 伊人网在线综合 | 范冰冰一级做a爰片久久毛片 | 国产高清性xxxxxxxx | 免费在线观看av的网站 | av黄色免费在线观看 | 久草综合在线视频 | 国产精品久久久久久久久久三级 | 久久精品国产免费看久久精品 | 亚洲精品电影在线 | 国产区一区二区三区 | 欧美不卡在线 | 日产久久| 成人动漫视频网站 | 午夜一区二区三区 | 亚洲永久字幕 | 一区二区av |