日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

都用10年了,gRPC有什么不好的?

來源: 責編: 時間:2024-07-01 17:12:58 207觀看
導讀編輯 | 言征出品 | 51CTO技術棧(微信號:blog51cto)gRPC 是一種高性能 RPC 框架,它取得了巨大的成功,并且徹底改變了我們部署 API 的方式。gRPC 和 protobuf 是一種性能極高的以契約為中心的框架,具有極其廣泛的語言支持。但

編輯 | 言征sZW28資訊網——每日最新資訊28at.com

出品 | 51CTO技術棧(微信號:blog51cto)sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

gRPC 是一種高性能 RPC 框架,它取得了巨大的成功,并且徹底改變了我們部署 API 的方式。gRPC 和 protobuf 是一種性能極高的以契約為中心的框架,具有極其廣泛的語言支持。但它并非沒有缺點。制作一個需要代碼生成和多種編程語言支持的 RPC 框架肯定會出錯。隨著 gRPC 的使用時間接近十年,反思哪些方面可以做得更好是很重要的。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

1.學習曲線

讓我們從極其挑剔開始。所謂的一元 RPC 是指客戶端向服務器發送單個請求并收到單個響應的調用。為什么 gRPC 必須使用這樣一個只有數學家才直觀理解的非標準術語來表示這一點?每次使用這個術語時,我都必須解釋一下。我有點厭倦了。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

說到一元 RPC,其實現比它需要的更復雜。雖然 gRPC 的流式傳輸功能很強大,但它們為不需要流式傳輸的簡單 RPC 調用引入了復雜性。這損害了檢查 gRPC 調用的能力,因為現在每個一元 RPC 上都有框架,而這只對流式傳輸有意義。Protobuf 編碼已經足夠復雜了,所以我們不要在不需要的地方添加額外的 gRPC 框架。此外,它沒有通過我對任何 Web API 的“向朋友發送 cURL 示例”測試。向某人解釋如何使用 gRPC 實在是太煩人了。我已經說過“好的,但是服務器反射啟用了嗎?”很多次了。我只是厭倦了。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

這種復雜性還通過強制代碼生成步驟滲透到工具中。這可能是一個障礙,尤其是對于重視運行時靈活性的動態語言。此外,一些開發人員可能不愿意采用需要額外構建步驟的技術。現代 Web 開發已經需要 20 個構建步驟,有時很難再增加一個步驟。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

圖片圖片sZW28資訊網——每日最新資訊28at.com

2.與 Web 的兼容性

sZW28資訊網——每日最新資訊28at.com

對 HTTP/2 的依賴最初限制了 gRPC 的覆蓋范圍,因為并非所有平臺和瀏覽器都完全支持它。這種情況隨著時間的推移有所改善,但在某些環境中仍然構成挑戰。但即使有了 HTTP/2 支持,瀏覽器也避免添加處理 HTTP 尾部的方法,因此今天的瀏覽器仍然無法使用“原始” gRPC。gRPC-Web 通過避免使用尾部充當了這個問題的膏藥,但它通常需要“額外的東西”,比如運行支持 gRPC-Web 的代理。這很煩人。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

HTTP/3 的采用較晚:HTTP/3 的采用延遲可能阻礙了 gRPC 充分利用該協議的性能和效率優勢。我個人受到將 gRPC 與 HTTP/2 結合使用時可能發生的隊頭阻塞問題的影響,如果能夠將 HTTP/3 與 gRPC 結合使用,可以完全消除此問題,那就太好了。看到一個推動多種語言支持 HTTP/2 的框架在努力用 HTTP/3 做同樣的事情,真是奇怪。sZW28資訊網——每日最新資訊28at.com

3.JSON 映射和 Prototext

sZW28資訊網——每日最新資訊28at.com

另一個“時機”不對的領域是早期缺乏標準化的 JSON 映射。這讓習慣于基于 JSON 的 API 的開發人員更難使用 gRPC,而且我認為它從未從這種污名中恢復過來。在 protobuf 類型和 JSON 之間建立映射簡化了與現有工具和系統的集成和互操作性。當你說“是的,這是一種超高效的二進制格式……但如果你想調試,你可以設置這個標志并取回 JSON”時,你不會相信 Web 開發人員會有多高興。他們會興奮得不得了。太興奮了。無論如何,既然 protobuf 有了將 protobuf 類型映射到 JSON(反之亦然)的標準規則,我覺得protobuf 文本格式是一種不必要的復雜性。既然有了 JSON,我看不到文本格式的用例。所以讓我們拋棄文本格式吧。我們不需要它,如果其他人都不需要它,我愿意假裝它從未存在過。很酷吧?sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

4.有限的消息大小

大多數 Protobuf 編碼器/解碼器都希望完全解析整個消息并向消費者提供完整的響應,但內存是有限的,有時您可能需要更大的消息。有時您希望將這些較大消息的部分流式傳輸到其他地方,而不是將整個消息保存在內存中。因此,如果您想要上傳大文件,您將需要實現某種分塊。雖然分塊是處理大文件的合理解決方案,但 gRPC 中缺乏標準化方法可能會導致實現不一致并增加開發工作量。sZW28資訊網——每日最新資訊28at.com

作為演示,使用 gRPC 上傳文件如下所示:sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

syntax = "proto3";package file_service;service FileService {   rpc Upload(stream UploadRequest) returns(UploadResponse);}message UploadRequest {    string file_name = 1;    bytes chunk = 2;}message UploadResponse {  string etag = 1;}

5.協議緩沖區

sZW28資訊網——每日最新資訊28at.com

這是 protobuf 的優點,也是缺點。這個概念在 protobuf 中非常容易定義,但在實踐中,正確實現它的代碼可能很麻煩且容易出錯。雖然 gRPC 的創建者 Google 已經為他們的 API 找到了解決方案,但缺乏標準化方法使得其他人只能重新發明輪子。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

你可能會想“Google 在其大多數 API 中使用 gRPC,因此顯然他們已經這樣做了”,您是對的。他們實際上有一個用于下載(可能很大的)文件的 gRPC 和 HTTP 版本。我們可以直接比較 gRPC 和 HTTP 版本,并且gRPC到目前為止要復雜得多。繼續比較鏈接的代碼。我會等待。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

6.互聯網理論

我看到很多 gRPC/protobuf 社區都缺乏活動。一些網站上缺乏可見的活動可能會給人留下 gRPC 停滯不前或維護不積極的印象。這可能會阻礙潛在的采用者并導致社區增長放緩。這可能是因為選擇太多,很難在 GitHub 問題之外找到對 gRPC 感興趣的人,因為這種熱情可能會被視為煩人。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

7.糟糕的工具

很長一段時間以來,當我看到代碼庫使用 protobuf 時,我都會發現一個奇怪的腳本,它以超級自定義的方式下載隨機的 protobuf 文件并將它們放置在隨機路徑中,然后對進行一系列超級復雜的調用protoc。只有谷歌會認為不解決依賴管理就是解決依賴管理問題的辦法。谷歌有自己非常谷歌式的管理依賴的方式,我們這些農民只能夢想著使用。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

  • 當生活給你錘子時,就把它變成錘子吧。
  • 它可以更好(而且確實更好)

sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

雖然我一直批評 gRPC,但我希望我的評論能起到建設性的作用。讀到本文末尾的人會知道,其中許多問題已經得到解決,或者至少正在得到解決!sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

一些 gRPC 實現已經支持 HTTP/3。ConnectRPC 使得使用 HTTP/3 和 gRPC 變得非常容易(我將在以后的文章中繼續介紹這一點)。sZW28資訊網——每日最新資訊28at.com

由于protobuf 規范具有與 JSON 的規范映射,我不再需要擔心文本格式。我真的希望每個人都忘記它的存在。文本格式的空間有限。我不是開玩笑。這是我最后一次承認它的存在。sZW28資訊網——每日最新資訊28at.com

如果您知道該去哪里找,gRPC 社區實際上非常活躍。例如,buf slack對我來說是一個很好的資源。您可能會發現我經常在這里閑逛并回答問題。sZW28資訊網——每日最新資訊28at.com

Buf CLI是一款出色的 gRPC 工具。它protoc不僅完全替代了 gRPC 的 linting、重大更改檢測、用于 gRPC 的 curl、與 Buf Schema Registry 的集成(哇,真正的依賴管理!),而且還添加了更多功能!此外,您熟悉和喜愛的 HTTP 工具也支持 gRPC,例如Postman、Insomnia和k6。sZW28資訊網——每日最新資訊28at.com

sZW28資訊網——每日最新資訊28at.com

盡管 gRPC 取得了不可否認的成功,但承認該框架的缺點以確保其持續發展和改進仍然很重要。通過解決其學習曲線、兼容性問題、缺乏標準化和社區參與,我們可以釋放 gRPC 的全部潛力,使其成為所有開發人員更易于訪問和用戶友好的工具。sZW28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-97894-0.html都用10年了,gRPC有什么不好的?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 這張圖,把 vue3 的源碼講清楚了!!!

下一篇: 記一次 .NET某網絡邊緣計算系統 卡死分析

標簽:
  • 熱門焦點
  • 6月iOS設備性能榜:M2穩居榜首 A系列只能等一手3nm來救

    沒有新品發布,自然iOS設備性能榜的上榜設備就沒有什么更替,僅僅只有跑分變化而產生的排名變動,畢竟蘋果新品的發布節奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • 不容錯過的MSBuild技巧,必備用法詳解和實踐指南

    一、MSBuild簡介MSBuild是一種基于XML的構建引擎,用于在.NET Framework和.NET Core應用程序中自動化構建過程。它是Visual Studio的構建引擎,可在命令行或其他構建工具中使用
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元“人在職場,應該選擇什么樣的著裝?”近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 微博大門常打開,迎接海外畫師漂洋東渡

    作者:互聯網那些事“起猛了,我能看得懂日語了”。“為什么日本人說話我能聽懂?”“中文不像中文,日語不像日語,但是我竟然看懂了”…&hell
  • 華為將推出盤古數字人大模型 可幫助用戶12小時完成數字人生成

    在今日舉行的2023年華為云數字文娛AI創新峰會上,華為云全球Marketing與銷售服務總裁石冀琳表示,華為云將在后續推出盤古數字人大模型,可幫助用戶12小
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
午夜精品免费| 亚洲毛片在线观看| 午夜精品一区二区三区在线播放 | 曰韩精品一区二区| 国产精品久久9| 免费人成网站在线观看欧美高清| 亚洲午夜精品一区二区三区他趣| 在线成人www免费观看视频| 国产精品女人毛片| 欧美精品国产精品日韩精品| 性欧美video另类hd性玩具| 99国产一区二区三精品乱码| 精品成人久久| 国产欧美一区二区三区在线老狼 | 久久精品国产99国产精品| 这里只有精品丝袜| 亚洲国产成人精品视频| 国产一区三区三区| 国产精品欧美在线| 激情久久婷婷| 欧美视频在线观看一区二区| 欧美成人在线网站| 久久午夜羞羞影院免费观看| 亚洲综合视频在线| 亚洲伊人网站| 亚洲视频高清| 亚洲一区视频在线| 久久在线免费观看视频| 欧美日韩一区二区三区在线视频 | 亚洲精品日韩综合观看成人91| 精品动漫一区| 亚洲午夜国产成人av电影男同| 一本色道久久综合亚洲精品婷婷| 99国产精品国产精品毛片| 日韩午夜激情av| 久久精品国产99国产精品澳门| 欧美一区二区成人| 久久国产直播| 欧美日精品一区视频| 国产一区深夜福利| 亚洲午夜性刺激影院| 欧美jizz19性欧美| 欧美日韩国产区一| 开心色5月久久精品| 久久亚洲综合| 美女精品网站| 国产乱子伦一区二区三区国色天香| 国产精品另类一区| 亚洲激情视频网| 亚洲日本国产| 亚洲深夜福利视频| 亚洲香蕉网站| 欧美久久久久久久| 欧美午夜大胆人体| 欧美亚洲第一区| 亚洲人成免费| 亚洲天堂第二页| 欧美大片免费看| 激情五月综合色婷婷一区二区| 亚洲影院色无极综合| 久久久999精品视频| 欧美人在线观看| 亚洲二区在线观看| 日韩网站免费观看| 久久免费视频在线| 欧美激情亚洲精品| 国产精品腿扒开做爽爽爽挤奶网站| 国产欧美精品一区二区三区介绍| 日韩一区二区精品| 欧美顶级艳妇交换群宴| 在线国产精品一区| 久久综合亚州| 在线观看欧美黄色| 久热精品视频在线| 欧美视频二区| 国产无一区二区| 亚洲精品国产系列| 免费影视亚洲| 国产精品www.| 136国产福利精品导航网址应用| 99在线精品免费视频九九视| 欧美在线短视频| 欧美精品高清视频| 国产日韩欧美视频在线| 亚洲精品乱码久久久久久蜜桃91 | 久久久久久久综合日本| 黄色日韩网站视频| 日韩一级精品视频在线观看| 欧美一区二区视频在线观看2020| 美女被久久久| 国产精品视频免费| 亚洲视频自拍偷拍| 国产精品大片| 午夜欧美大片免费观看| 国产欧美三级| 久久国产黑丝| 欧美午夜激情小视频| 一区二区三区回区在观看免费视频| 欧美精品一区二区三区在线看午夜| 日韩网站免费观看| 久久久久国产成人精品亚洲午夜| 国产一区二区在线观看免费播放| 一本一本a久久| 免费亚洲婷婷| 国产亚洲激情在线| 亚洲午夜在线| 国产精品爽爽ⅴa在线观看| 亚洲精品护士| 欧美在线观看一区二区三区| 国产视频久久| 亚洲私人影院| 国产精品一区二区久激情瑜伽| 亚洲免费观看高清在线观看 | 亚洲高清视频在线| 欧美精品一区在线播放| 亚洲欧美国产视频| 狠狠综合久久av一区二区老牛| 欧美1区2区3区| 一区二区精品在线| 国产日产欧产精品推荐色| 另类专区欧美制服同性| 国语自产在线不卡| 欧美国产日韩免费| 亚洲激情av| 欧美三级电影一区| 久久国产精品久久国产精品| 亚洲黄色成人久久久| 另类亚洲自拍| 一本色道久久综合亚洲二区三区| 国产欧美一区二区三区视频| 欧美成人综合| 午夜精品理论片| 亚洲国产精品久久91精品| 久久亚洲私人国产精品va| 亚洲欧洲日产国产综合网| 欧美丝袜一区二区三区| 久久精品夜色噜噜亚洲a∨ | 国产日韩欧美三级| 欧美成人午夜激情在线| 亚洲一区二区在线免费观看| 黄色在线一区| 国产精品多人| 亚洲欧美国产精品桃花| 亚洲电影在线免费观看| 国产精品久久久久久福利一牛影视| 久久影院午夜论| 亚洲一级黄色片| 亚洲国产日韩欧美在线99| 国产精品综合色区在线观看| 欧美激情一区二区久久久| 欧美在线一级视频| 狠狠色综合网| 国产精品videosex极品| 亚洲欧美美女| 国产精品五月天| 欧美国产一区二区在线观看| 日韩视频免费观看高清完整版| 国产精品美女视频网站| 久久精品国产久精国产爱| 国产一区二区三区日韩欧美| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲色无码播放| 国产九九精品| 欧美日韩一区二区三区四区五区| 亚洲少妇最新在线视频| 在线观看视频一区二区欧美日韩| 国产精品中文字幕欧美| 久久久噜噜噜久久人人看| 亚洲片在线观看| 国内揄拍国内精品少妇国语| 蜜桃av综合| 欧美一区二区免费视频| 一区在线观看视频| 美女黄色成人网| 一区二区日韩免费看| 亚洲国产欧美一区二区三区久久 | 久久久.com| 亚洲自拍偷拍一区| 99热这里只有成人精品国产| 国产欧美日韩一区二区三区| 欧美私人网站| 欧美久久影院| 欧美一区激情| 亚洲午夜精品网| 日韩一区二区高清| 亚洲裸体俱乐部裸体舞表演av| 在线观看成人网| 国内久久婷婷综合| 欧美三级网址| 欧美激情国产日韩| 亚洲欧美清纯在线制服| 一区二区高清在线观看| 亚洲精品国产日韩| 亚洲激情一区二区| 亚洲国产免费看| 国产精品久久久久久久电影| 久久免费少妇高潮久久精品99| 亚洲精品视频在线观看免费| 一区二区三区自拍| 狠狠色综合色综合网络| 狠狠网亚洲精品| 伊大人香蕉综合8在线视| 极品尤物久久久av免费看| 韩国三级在线一区|