系统架构师学习笔记 (一)

学习目标

  • 了解系统架构的基本概念。
  • 掌握系统架构设计的原则。
  • 学习如何评估和选择合适的技术栈。
  • 了解云服务的基础知识及其在架构中的应用。

系统架构的基本概念

  • 定义:系统架构是指一个系统的设计蓝图,它定义了系统的各个组成部分及其相互之间的关系。
  • 要素
    • 组件:系统的组成部分,如数据库、API 服务器等。
    • 接口:组件间通信的方式。
    • 数据流:数据如何在系统中流动。
    • 约束:性能、安全性、可用性等要求。

系统架构设计原则

  1. 模块化:将系统划分为独立的、可重用的模块。
  2. 松耦合:减少各部分之间的依赖,以便于维护和扩展。
  3. 高可用性:确保系统即使在部分故障的情况下也能继续运行。
  4. 安全性:保护数据和资源免受未授权访问和攻击。
  5. 可扩展性:随着需求的增长,系统应能轻松扩展。
  6. 性能:确保系统响应速度快、延迟低。

技术栈的选择

  • 前端:React / Vue.js
  • 后端:Spring Boot
  • 数据库:MySQL / MongoDB
  • 缓存:Redis
  • 消息队列:RocketMQ / Kafka
  • 容器化:Docker
  • 微服务架构:Kubernetes

云服务基础

  • IaaS (Infrastructure as a Service):提供基础设施服务,如 AWS EC2、Google Compute Engine。
  • PaaS (Platform as a Service):提供平台服务,如 Heroku、Google App Engine。
  • SaaS (Software as a Service):提供软件服务,如 Salesforce、Office 365。
  • 容器服务:AWS EKS、Azure AKS、GKE。

设计模式

  • 单体架构:所有功能都在一个进程中运行。
  • 微服务架构:将应用分解为一组小型服务,每个服务实现特定的功能。
  • 事件驱动架构:通过事件触发系统中的操作。
  • 服务网格:管理服务间的通信,如 Istio。

实践案例

假设我们要为一个电子商务网站设计一个系统架构,主要考虑以下几个方面:

  1. 用户界面:使用 Vue构建动态前端。
  2. 购物车服务:使用 vue.js 和 Express 构建 RESTful API。
  3. 支付服务:集成第三方支付网关,如 Stripe。
  4. 库存管理:使用 Spring Boot 构建后端服务,与 MySQL 数据库交互。
  5. 订单处理:使用 RocketMQ 处理订单状态更新。
  6. 日志和监控:使用 ELK Stack (Elasticsearch, Logstash, Kibana)。

参考资料


今天的笔记到这里结束。明天我继续深入研究具体的架构设计和技术选型。希望我的学习经历对你有所帮助!

明日计划

  • 继续阅读《Clean Architecture》。
  • 学习 Kubernetes 基础知识。
  • 研究 Docker 容器化技术。
  • 规划我们的项目架构草案。

以上内容为个人学习笔记,仅供参考。

相关推荐
时光追逐者9 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
一弓虽15 分钟前
SpringBoot 学习
java·spring boot·后端·学习
晓数1 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题2 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
genggeng不会代码2 小时前
用于协同显著目标检测的小组协作学习 2021 GCoNet(总结)
学习
lwewan2 小时前
26考研——存储系统(3)
c语言·笔记·考研
搞机小能手2 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq3 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯3 小时前
终端运行java出现???
笔记
The_cute_cat5 小时前
25.4.22学习总结
学习