常见的专有名词
# 单体架构
将所有功能打包在一个容器中运行的设计风格
一个实例中集成了一个系统的所有功能
通过负载均衡软件/设备实现多实例调用
优点:易开发、易调试、易部署
缺点:可靠性差、不易协同、升级困难
# 面向服务的架构(SOA)
- 是一种分布式服务架构
- 将应用程序的不同服务进行拆分、通过这些服务之间定义明确的借口和协议联系起来
- 进而实现跨服务/系统交互的能力
- 优点:松耦合、独立性、可重用
- 挑战:随着大型互联网公司对大规模弹性部署和敏捷开发的需求,SOA 逐渐难以应付
# 微服务(Microservices)
- 一种软件架构风格
- 专注于单一责任与功能的服务为基础,服务之间互相协调配合
- 每个服务运行在其独立的进程中,服务之间采用轻量级的通信机制互相沟通,能够被独立部署
- 优点:
- 服务松耦合、独立开发、独立部署
- 服务可以用不同语言开发
- 相较于 SOA 的优势
- 复用率更高
- 快速响应
- 弹性扩展
- 支持异构
- 微服务要解决的问题
- 服务划分
- 业务边界清晰
- 最小化地变更
- 最大化地复用
- 服务注册与调用
- 延迟队列
- 服务熔断处理
- 缓存设计
- 分布式事务实现
- 服务划分
- 典型代表
- Spring Cloud
- 基于 Spring Boot 实现的服务治理框架
- Spring Boot 专注于快速、方便集成的单个个体
- Spring Cloud 关注全局服务治理
- Dubbo
- 阿里开源的高性能、轻量级分布式RPC框架
- 面向接口的远程方法调用
- 智能容错和负载均衡
- 服务自动注册和发现
- Spring Cloud
- 困难
- 业务架构复杂
- 服务拆分粒度难以把握
- 部署维护困难
# 敏捷开发
上次更新: 2021/09/05, 19:05:19
- 02
- README 美化05-20
- 03
- 常见 Tricks 代码片段05-12