您好,登錄后才能下訂單哦!
Netflix中用于Spring Boot 的GraphQL框架DGS是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Netflix 已開放其 Domain Graph Service(DGS)框架的源代碼 ,該框架是為獨立和聯(lián)合 GraphQL 服務開發(fā)的內容流服務,用于簡化 GraphQL 的實現。
Netflix 的軟件工程師 Paul Bakker 以及 Kavitha Srinivasan 在博客中寫道:“通過開源該項目,我們希望為 Java 和 GraphQL 社區(qū)做出貢獻,并向使用該框架的所有人學習并與之合作,以使 DGS 在將來變得更好?!?/p>
GraphQL 最初由 Facebook 內部開發(fā),是一種用于 API 的開源查詢語言,是一種服務器端運行時用于對現有數據執(zhí)行查詢。正如 GraphQL Foundation 解釋的那樣,該語言提供了基于 REST 體系結構的替代方案,目的是提高開發(fā)人員的生產力并最大程度地減少傳輸的數據量?!?/p>
GraphQL 被包括 Credit Karma、GitHub、Intuit、PayPal 和《紐約時報》等在內的許多組織用于生產環(huán)境中。Netflix 也將其用作數據查詢和操作語言,將數據提取到系統(tǒng)中以支持其內容工程部門。
為什么需要 DGS 框架
Netflix 在 2019 年開始實施聯(lián)合 GraphQL 架構,向新的體系結構過渡意味 Netflix 公司的許多后端團隊需要在其 Java 生態(tài)系統(tǒng)中采用 GraphQL。Netflix 已經為后端開發(fā)標準化了 Spring Boot 快速應用程序開發(fā)框架。由于該公司的框架是在 Spring Boot 之上創(chuàng)建的,為了使這種新的聯(lián)合架構獲得成功,Netflix 就需要在 Spring Boot 中為 GraphQL 帶來出色的開發(fā)體驗。
DGS 框架的主要功能包括:
基于注釋的 Spring Boot 編程模型
用于將查詢測試編寫為單元測試的測試框架
Gradle 代碼生成插件,可從 GraphQL 模式創(chuàng)建 Java/Kotlin 類型
與 GraphQL Federation 輕松集成
與 Spring Security 集成
GraphQL 訂閱(WebSocket 和 SSE)
文件上傳
錯誤處理
基于 Java 的 GraphQL 客戶端
在 Spring Boot 之上創(chuàng)建的 DGS 框架,它利用了 graphql-java 庫,DGS 框架最初僅在 Netflix 內部使用,著重于與 Netflix 生態(tài)系統(tǒng)的集成以進行跟蹤、日志記錄和指標等。但是,將框架適當地模塊化也是他們重中之重的任務。顯然,Netflix 構建的大部分框架實際上并不是特定于 Netflix 本身的。該框架基本上只是構建獨立和聯(lián)合 GraphQL 服務的一種簡便方法。
該框架有很多 Kotlin 代碼,我可以用 Java 使用它嗎?
盡管 DGS 框架主要是用 Kotlin 編寫的,但該框架主要設計用于 Java,并且大多數框架的使用者都使用 Java。當然,如果使用的是 Kotlin,效果也很好。
Netflix 是否在該框架的分支上運行?
不,Netflix正在使用相同的 OSS 組件!Netflix 為分布式跟蹤、日志記錄、指標等插入了一些額外的模塊,并且我們有文檔說明如何為自己的基礎架構實現類似集成。
準備好用于生產環(huán)境中了嗎?
是的!在開源之前,Netflix 已經在不同的部門中使用了超過一年半的時間,甚至包括一些大規(guī)模項目。我們已經發(fā)布了許多發(fā)行版,其中增加了新功能、修復了錯誤等,并且它已經成為一個非常穩(wěn)定的平臺。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。