light-4j
含义:轻量级、快速、云原生
为何:苦于Java EE的性能和生产力低下,IT行业面临单体向微服务、内部数据中心向公共云的转变
目标:低内存、高吞吐、低延迟,业务逻辑与技术切面解耦,云原生
工具
风格
- light-rest-4j,Restful风格遵循OpenAPI 3.0 or Swagger 2.0规范
- light-graphql-4j,GraphQL风格查询、变更、订阅
- light-hybrid-4j,RPC风格,light-hybrid就是参考它并添加了一点特性
中间件:MiddlewareHandler,通过service.yml灵活配置
- ExceptionHandler,异常处理,通常是第一个
- MetricsHandler,指标统计
- TraceabilityHandler,将请求头的traceabilityId添加到响应头,用于关联请求和响应
- CorrelationHandler,添加correlationId到请求头,用于跨微服务跟踪
- CorsHttpHandler,跨域处理
- JwtVerifyHandler,安全校验
- BodyHandler,处理正文
- SanitizerHandler,
- AuditHandler,审计日志;DumpHandler,转储信息
- LimitHandler,请求限速;WhitelistHandler,白名单
组件
- server,启停服务,主类con.networknt.server.Server
- config,加载配置,默认加载src/main/resources/config
- status,错误信息,通过app-status.yml自定义,LightHttpHandler.setExchangeStatus
- service,服务配置(相当于SpringContext),配置所需组件、中间件、HandlerProvider等
- handler,处理器配置(缺少时使用上面的HandlerProvider就够了),支持更灵活的配置
- client服务间访问,security安全校验,
- registry注册发现,cluster+banlance负载均衡,consul+zookeeper外部集成
- health健康信息,info服务端信息
服务
- light-oauth2,OAuth 2.0实现,用于微服务的安全访问
- light-config-server,中心化配置和密钥管理(相当于配置中心)
集成
- consul与zookeeper,服务注册与发现
- Kafka与Elasticsearch,消息队列,日志检索
- prometheus与InfluxDB,指标统计
- Kubernetes与Openshift,容器部署