跳转至

2.8c 架构设计

2.8b 后端开发 | 首页 | 下一节: 2.8d 基础设施


  • API 架构
  • 标准:REST(资源导向,无状态,利用 HTTP 方法语义)、SOAP(协议导向,XML 消息格式,强类型契约)。
  • 安全性:速率限制防爬虫、CAPTCHA 防机器攻击、OAuth 2.0 / API Key 认证。
  • 弹性:断路器模式(Circuit Breaker)——第三方服务故障时,临时熔断该依赖的调用,快速失败而非长时间等待,防止级联故障。
  • 外部化配置(Externalized Configuration):将配置(数据库连接串、开关等)从代码中分离到环境变量、配置中心,使同一份构建产物可部署到不同环境。
  • 一切皆代码(Everything as Code):将基础设施(Terraform, Ansible, Docker, K8s)、配置、文档(Markdown + CI 检查)、培训内容全部以代码形式管理。好处:单一真实来源、Peer Review、版本历史、CI/CD 自动化、打破团队壁垒。
  • 单体 vs 微服务
  • 单体:简单部署、易调试,但大型单体耦合严重、扩展困难。
  • 微服务:独立部署、独立扩展、技术栈自由,但引入分布式复杂度(网络延迟、数据一致性、服务发现)。
  • 领域驱动设计(DDD):围绕业务领域建模,关注限界上下文(Bounded Context)、聚合(Aggregate)、实体(Entity)、值对象(Value Object)、领域事件(Domain Event)。
  • 六边形架构(端口与适配器):将核心业务逻辑与外部依赖(数据库、UI、第三方 API)隔离,通过端口(Port)和适配器(Adapter)连接。
  • 数据建模:创建信息系统的数据模型的过程。三个层次:
  • 概念模型:技术无关的业务数据描述,与利益相关者讨论需求。
  • 逻辑模型:转化为可实现的表/列/类结构。
  • 物理模型:考虑分区、索引、存储等具体实现细节。 数据模型是动态文档,随业务变化演进。常用方法:ERD、UML 类图、IDEF1X。
  • Service Mesh:微服务通信基础设施层,处理服务间流量管理、负载均衡、服务发现、重试/超时、可观测性,让业务代码不感知网络层。
  • 关键协议理解:HTTP/HTTPS(应用层)、TCP/UDP(传输层)、LDAP(目录服务)、SSH(安全远程)、SMTP(邮件)。

来源

  • Romén Rodríguez-Gil — Everything 'As-code': https://www.romenrg.com/blog/2019/12/31/everything-as-code/
  • Wikipedia — Data modeling: https://en.wikipedia.org/wiki/Data_modeling

2.8b 后端开发 | 首页 | 下一节: 2.8d 基础设施