跳至主要內容
DDD 入门指南:从贫血模型到领域驱动

前言

在传统 Spring Boot 项目开发中,我们习以为常的"Controller-Service-DAO"三层架构,往往会让代码逐渐演变成所谓的"贫血模型"。数据对象只有 getter/setter,业务逻辑散落在各个 Service 类中,随着系统复杂度增加,代码变得越来越难以维护。

领域驱动设计(Domain-Driven Design,简称 DDD)由 Eric Evans 在 2003 年提出,提供了一套应对复杂业务系统的建模方法论。本文将带你从实际项目出发,深入理解 DDD 的核心概念,并通过实战案例将 DDD 落地到你的项目中。


郑天祺大约 26 分钟架构设计DDD领域驱动设计架构Spring Boot
从零搭建可观测性平台:Prometheus + Grafana + Jaeger

从零搭建可观测性平台:Prometheus + Grafana + Jaeger

前言

"线上出问题了,看日志才发现。"——这是运维的噩梦。可观测性(Observability)让系统变得"透明",让你在问题发生前就能察觉,发生时能快速定位根因。

本文带你从零搭建一套完整的可观测性平台,覆盖 Metrics + Tracing + Logging 三大支柱。


第一部分:可观测性三大支柱

1.1 三支柱全景

┌─────────────────────────────────────────────────────────┐
│                   可观测性平台                            │
│                                                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │  Metrics    │  │  Tracing    │  │  Logging    │     │
│  │  (指标)     │  │  (追踪)     │  │  (日志)     │     │
│  ├─────────────┤  ├─────────────┤  ├─────────────┤     │
│  │ Prometheus  │  │  Jaeger     │  │  ELK/Loki   │     │
│  │ + Grafana   │  │  + OTEL     │  │             │     │
│  └─────────────┘  └─────────────┘  └─────────────┘     │
│                                                         │
│  回答什么问题:    回答什么问题:   回答什么问题:         │
│  "系统现在正常吗?" "请求经过了哪些  "出错时的详细         │
│  "QPS是多少?"    服务?哪里慢了?" 上下文是什么?"       │
│  "错误率多少?"                                      │
└─────────────────────────────────────────────────────────┘

郑天祺大约 8 分钟运维可观测性PrometheusGrafanaJaegerOpenTelemetrySpring Boot