对 Spring Overhead 感到厌倦了吗?在你的下一个 Java 微服务中尝试 Dropwizard

主要观点:介绍用 Dropwizard 构建第一个 Java 微服务,强调其便捷性及包含的诸多功能。
关键信息

  • Dropwizard 已历经测试,整合众多库,如 Jetty、Jersey、Jackson 等。
  • 所需 Java 11+ 及 Maven,可通过 Maven Archetype 或手动创建 Maven 项目搭建项目,添加 dropwizard-core 依赖。
  • 用 YAML 进行配置,定义配置类,如 HelloWorldConfiguration。
  • 应用类扩展 Application<T>,包含 main、initialize、run 等方法,可注册资源等。
  • 有示例资源类,如 HelloWorldResource,处理请求并返回相应结果。
  • 可进行构建、运行、测试,包括 mvn clean package 生成 JAR,运行服务并通过 cURL 等测试,还可进行自动化测试。
  • 能进行健康检查、数据库连接、自定义健康检查、度量和监控、使用 Bundles 和扩展、配置安全和 HTTPS 等操作。
    重要细节
  • 构建 Fat JAR 时,Maven Shade Plugin 可将依赖合并到 target/your-app.jar。
  • 配置文件为 config.yml,可指定端口等。
  • 数据库连接可通过 dropwizard-jdbi3 模块,在 YAML 中设置数据源并在相应方法中初始化。
  • 自定义健康检查可通过继承 HealthCheck 类实现,并在 run 方法中注册。
  • 度量和监控可使用 MetricRegistry 跟踪事件等,通过 admin /metrics 端点获取 JSON 指标。
  • Bundles 可用于添加模板、认证等功能,避免代码中出现大量样板代码。
  • 安全方面可配置 Basic Authentication 和 OAuth,通过 YAML 限制应用连接器实现 HTTPS 连接。
  • 生产就绪后可进行数据持久化、设置自定义检查、进行性能跟踪、启用安全机制等操作,可使用偏好的云进行部署,Dockerize 并在 Kubernetes 上运行。
阅读 8
0 条评论