快速、輕量、雲端原生的微服務框架。
堆疊溢位 |谷歌集團|吉特聊天 |子版塊 | YouTube 頻道 |文檔 |貢獻指南 |
Light 意味著輕量級、快如閃電,並揭示如何使用現代 Java SE 進行程式設計以實現雲端原生部署。
自 2000 年初以來,我一直在 Java EE 平台上工作,並遇到了效能和生產力問題。 2014 年,我意識到 IT 產業正從整體式轉向微服務,從本地資料中心轉向公有雲。
為了降低應用程式的生產成本,我需要找到一個記憶體佔用小、吞吐量高且 Java 延遲低的輕量級平台。 Java EE 和 Spring/Spring Boot 太重了,不考慮。其他輕量級 Java 平台在業務邏輯和技術橫切關注點之間的分離方面都存在不同的問題。此外,它們不是雲端原生的,也不是為容器/雲端設計的。
在沒有找到任何合適的東西的情況下,我開始遵循以下原則在 Undertow HTTP 核心之上建立我的開源平台 light-4j。因為我的做法很激進,而且是針對大公司的產品,所以網路線下不斷受到一些實體的攻擊。然而,我堅信我的方法是未來的方向,並將盡全力繼續發展。如今,許多公司在生產中使用 light-4j,並獲得了非常正面的回饋。它進一步鼓勵我致力於框架並擴展平台以建立生態系統。
對於從該平台受益的用戶,您可以成為我的贊助商,以便我可以將全部精力投入到開源專案中。
它比最受歡迎的微服務平台 Spring Boot 嵌入式 Tomcat 快 44 倍,並且僅使用 1/5 的記憶體。以下是與 Spring Boot 和其他微服務框架進行比較的基準測試結果。這是第三方與其他Web框架的比較。
設計 OpenAPI 規格並從中產生服務。該規範也是驅動運行時安全驗證和請求驗證的框架的一部分。
產生單元/端對端測試存根,以實現高品質產品的測試驅動方法。
在 IDE 中進行偵錯就像獨立應用程式一樣,以提高開發人員的工作效率。
產生 Dockerfile 和 DevOps 支援文件以支援 Docker 化和持續整合到生產。
所有開源框架都是用Java建構的,我們內部正在開發Nodejs框架。未來我們可能也會提供Golang框架,而且它們都共享相同的生態系統和市場。
用於安全的 OAuth2 伺服器和用於生產監控和管理的入口網站。該門戶也是一個將客戶和服務聯繫在一起的市場。
有兩種方法可以啟動您的專案:
您可以使用 light-codegen 產生工作項目。目前,它支援 light-rest-4j、light-graphql-4j、light-hybrid-server-4j 和 light-hybrid-service-4j。 light-eventuate 代碼產生器即將推出。
light-codegen 專案 README.md 透過範例描述了使用生成器的四種方法。
啟動專案的另一種方法是從 light-example-4j 複製。
您可以找到這些範例的描述
另外還有一些教程
要從 IDE 運行/調試,您需要使用主類別“com.networknt.server.Server”配置 Java 應用程序,工作目錄是您的專案資料夾。沒有容器,您只是在開發一個獨立的 Java 應用程式。
建立一個Java應用程序,主類別是com.networknt.server.Server,工作目錄是您的專案根資料夾。您可以像調試 POJO 應用程式一樣調試您的伺服器。
mvn 執行:執行
java -jar target/demo-0.1.0.jar
您可以使用 Ctrl+C 來終止伺服器,但對於生產環境,請使用下列命令
kill -s TERM <pid>
伺服器有一個關閉掛鉤,上面的命令允許它進行清理。例如,完成正在進行的請求並關閉資料庫連線等。
Light-4j 和所有 light-*-4j 框架均可在 Apache 2.0 許可證下使用。有關詳細信息,請參閱許可證文件。