2.8b 后端开发
← 2.8a 前端开发 | 首页 | 下一节: 2.8c 架构设计 →
- API 设计:RESTful 原则、GraphQL、gRPC。关注版本策略、错误码语义、幂等性设计。
- 消息中间件(Message Broker):在应用间中转、路由、转换消息的中间件。核心价值是解耦生产者和消费者——发送方不需要知道接收方的存在。
两种基本架构: - 中心辐射型(Hub-and-Spoke):中心服务器提供集成服务。 - 消息总线(Message Bus):分布式通信骨干。
核心能力:队列管理、可靠投递、消息持久化、消息转换、发布订阅、事务支持。主流产品:RabbitMQ、Apache Kafka、Apache ActiveMQ、Redis Pub/Sub、NATS、AWS SQS/Kinesis。 - 关系型数据库:ACID(原子性、一致性、隔离性、持久性)、事务、索引、范式化。 - 非关系型数据库(NoSQL):文档型(MongoDB)、键值型(Redis)、列族型(Cassandra)、图数据库(Neo4j)。 - 数据库设计:ER 图、规范化与反规范化、索引策略。 - ORM:对象关系映射——在面向对象代码和关系数据库表之间建立映射,消除手写 SQL 的样板代码(如 Entity Framework、Hibernate、SQLAlchemy)。 - 批处理 / 定时任务:cron job、消息队列延迟处理、分布式调度。 - 会话管理:HTTP 无状态下的用户身份保持——Cookie-based、Token-based(JWT)、服务端 Session Store。 - 错误处理、审计与日志
错误处理确保应用优雅应对非预期状态,不暴露敏感信息: - 安全失败:错误不回显敏感信息(服务器版本、堆栈跟踪、库信息)。 - 集中式异常管理:全局处理器统一捕获和记录。 - 堆栈跟踪与上下文:捕获用户 ID、会话 ID、请求 ID 辅助调试,但避免记录密码等敏感数据。 - 测试覆盖:单元、集成、E2E 测试尽早发现错误路径。
日志提供系统运行记录: - 结构化日志:JSON、键值对统一格式,便于自动化分析。 - 日志级别:DEBUG < INFO < WARN < ERROR < FATAL。 - 集中式聚合:ELK Stack、Splunk 等收集、搜索、可视化多组件日志。 - 敏感数据管理:不记录密码、支付信息、PII;若必须记录需加密并设定保留策略。 - 保留与生命周期:定义日志生命周期,防止无限期存储。
审计追踪关键操作,支撑合规与安全: - 高质量日志:聚焦有意义的事件,而非海量噪音。 - 告警与通知:关键错误或可疑活动实时触发告警。 - 合规与隐私:符合数据保护法规和组织策略。 - 主动监控:异常检测和性能指标,在问题升级前发现。
最佳实践总结:明确日志目标→实施结构化分级日志→加密敏感信息并执行保留策略→集中聚合→将错误处理与告警集成→定期审查审计日志。
来源
- Wikipedia — Message broker: https://en.wikipedia.org/wiki/Message_broker