【Redis & 知识储备】微服务架构 -- 分布系统的演进(7)

简介

微服务是一种架构风格, 按照业务板块来划分应用代码, 使单个应用的职责更清晰, 相互之间可以做到独立升级迭代

出现原因

  • 扩展性差, 应用程序无法轻松扩展, 因为每次需要更新应用程序时, 都必须重新构建整体系统
  • 持续开发困难: 一个很小的代码改动, 也需要重新部署整个应用, 无法频繁并轻松的发布版本
  • 不可靠: 即使系统的一个功能不起作用, 可能导致真个系统无法工作
  • 不灵活: 无法使用不同的技术构建单体应用程序
  • 代码维护难: 所有功能耦合在一起, 新人不知道从何下手

架构工作原理

一个系统应用拆分成了多个微服务, 如用户服务, 交易服务和商品服务, 相互之间协作支持整个商城的应用

技术案例

在这里插入图片描述

架构优缺点

  • 优点
    • 灵活性高: 服务独立测试, 部署, 升级, 发布
    • 独立扩展: 每个服务可以各自进行扩展
    • 提高容错性: 一个服务问题, 并不会让整个系统瘫痪
    • 新技术的应用容易, 支持多种编程语言
  • 缺点
    • 运维复杂度高: 业务不断发展, 应用和服务都会不断变多, 应用和服务的部署变得复杂, 同一个服务器上部署多个服务还要解决运行环境冲突的问题, 此外, 对于如大促这类需要动态扩缩容的场景, 需要水平扩展服务的性能, 就需要在新增的服务上准备运行环境, 部署服务等, 运维将变得十分困难
    • 资源使用变多: 所有这些独立运行的微服务都需要占用内存和CPU
    • 处理故障困难: 一个请求跨多个服务调用, 需要查看不同服务的日志完成问题定位

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 18:16:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 18:16:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 18:16:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 18:16:04       20 阅读

热门阅读

  1. P8605 [蓝桥杯 2013 国 AC] 网络寻路

    2024-04-08 18:16:04       8 阅读
  2. UDP协议

    UDP协议

    2024-04-08 18:16:04      10 阅读
  3. 跨域问题及解决方案

    2024-04-08 18:16:04       15 阅读
  4. 【软件架构学习】一、基本概念

    2024-04-08 18:16:04       13 阅读
  5. 《空对象模式(极简c++)》

    2024-04-08 18:16:04       13 阅读
  6. QString()和QString(““)的区别

    2024-04-08 18:16:04       13 阅读
  7. 移动应用开发实验室三面题分析

    2024-04-08 18:16:04       10 阅读
  8. Qt 容器类整理与使用

    2024-04-08 18:16:04       11 阅读