快速、轻量级、云原生的微服务框架。
堆栈溢出 |谷歌集团|吉特聊天 |子版块 | 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>
服务器有一个关闭挂钩,上面的命令允许它进行清理。例如,完成正在进行的请求并关闭数据库连接等。如果使用服务注册表和发现,则服务器将向服务注册表发送关闭事件并继续处理请求 30 秒,直到所有客户端在关闭之前刷新其本地缓存。
Light-4j 和所有 light-*-4j 框架均可在 Apache 2.0 许可证下使用。有关详细信息,请参阅许可证文件。