微服务架构
2021-01-28 14:29:30 3 举报
AI智能生成
微服务架构
作者其他创作
大纲/内容
单体架构
三层架构
逻辑分层
表示层
业务逻辑层
数据访问层
优势
解决了系统间调用复杂、代码职责不清的问题
降低了代码之间的耦合度
单体架构
概念
三层架构是逻辑分层
代码运行于同一个进程
功能集中,代码中心化、一个发布包
优势
易开发
易测试
易部署
易水平扩展
复制应用,做负载均衡
不足
复杂度高,代码可维护性、扩展性、灵活性降低
系统修改、构建以及维护成本增加
技术更新困难、难以使用新技术
定义
一种架构模式,提倡将单一应用划分为多个小的服务,服务之间相互协调、互相配合最终为用户服务
每个服务运行在独立的进程中,能够独立发布
服务间采用轻量级的通信机制(RESTful)
依据单一业务功能进行服务划分
诞生背景
互联网高速发展
需求变化快
用户群体庞大
传统的单体架构无法适应互联网发展
敏捷、精益、持续交付、DevOps
容器虚拟化技术
快速部署和交付
迁移和扩展简单
易管理
微服务与SOA
SOA
企业级,自顶向下
子系统,粗粒度
ESB为中心,集中式
集成复杂(ESB/WS/SOAP)
单体架构,依赖、部署复杂
微服务
团队级,自底向上
子服务,细粒度
无中心,松散
集成简单(HTTP/REST/JSON)
服务独立部署
康威法则
组织的设计成果,其结构往往对应于这个组织中的沟通和组织结构
微服务的特点
服务组件化
按业务组织团队
做产品的态度
智能端点和哑管道
去中心化治理
去中心化管理数据
基础设施自动化
自动化测试
自动化集成
自动化部署
容错设计
故障自动检测
故障自动恢复
演进式设计
演进的方式构建系统
从单体架构逐步微服务化
微服务的优势
单一性
分解为多个服务,解决复杂性
聚焦单一业务功能,易开发、维护和理解
独立性
独立开发、测试、构建
服务可独立扩展
独立部署
技术多样性
独立团队开发
自由选择技术,提供API
快速部署和交付
每个服务独立部署
不需要协调其他服务
微服务的不足
分布式系统固有的复杂性
性能
服务间跨进程、跨网络调用
多个服务协作下的性能
可靠性
服务量大,单节点故障率
网络、带宽等物理条件
数据一致性
分布式事务
CAP理论
运维成本高
测试困难
自动化部署
依赖管理
0 条评论
下一页