当前位置: 首页 > article >正文

SpringCloud篇 微服务架构

1. 工程架构介绍

1.1 两种工程架构模型的特征

1.1.1 单体架构

上面这张图展示了单体架构(Monolithic Architecture)的基本组成和工作原理单体架构是一种传统的软件架构模式,其中所有的功能都被打包在一个单一的、紧密耦合的应用程序中

下面对图中各部分的详细解释:

  1. Application(应用程序)

    • 这是整个系统的中心,包含了所有的业务逻辑和用户界面。

    • 用户通过应用程序与系统进行交互,应用程序则负责处理用户请求并返回相应的结果。

  2. Admin、User、Goods等模块

    • 这些模块代表了应用程序中的不同功能部分。

    • Admin(管理模块):可能包含用户管理、权限管理、系统设置等功能。

    • User(用户模块):处理用户相关的操作,如注册、登录、个人信息管理等。

    • Goods(商品模块):管理商品信息,包括添加、修改、删除商品等。

    • 这些模块虽然在同一个应用程序中,但它们之间可能存在一定的耦合,因为它们共享相同的数据库和缓存资源。

  3. DB(数据库)

    • 数据库是单体架构中的核心数据存储组件。

    • 所有的模块都直接或间接地与数据库交互,以存储和检索数据。

    • 数据库的设计通常需要考虑所有模块的需求,这可能导致数据库结构复杂且难以维护。

  4. Cache(缓存)

    • 缓存用于提高系统的响应速度和性能。

    • 它存储了频繁访问的数据,以减少对数据库的直接访问,从而减轻数据库的负担。

    • 在单体架构中,缓存通常由应用程序统一管理,所有模块都可以访问缓存中的数据。

  5. 单体架构的特点

    • 简单性:开发和部署相对简单,因为所有功能都在一个应用程序中。

    • 部署困难:随着应用程序规模的增长,部署和维护变得越来越困难,因为任何小的更改都可能需要重新部署整个应用程序。

    • 扩展性差:由于所有功能都紧密耦合在一起,扩展特定功能可能需要扩展整个应用程序。

    • 技术限制:整个应用程序通常使用相同的技术栈,这可能限制了使用不同技术优化特定功能的能力。

简单来说就是所有功能模块都集成在一个应用程序中共享数据库和缓存资源。这种架构在小型或简单的应用程序中可能非常有效,但在大型或复杂的系统中,它可能导致维护和扩展的方面有很大的挑战。


1.1.2 微服务架构

上面这张图展示了微服务架构(Microservices Architecture)的基本组成和工作原理。微服务架构是一种将应用程序分解为一组小服务的架构风格每个服务实现特定的业务功能并可以独立部署和扩展。

下面对图中各部分的详细解释:

  1. Gateway(网关)

    • 网关是用户访问系统的入口点。

    • 它负责接收用户请求,并将请求路由到相应的服务。

    • 网关还可以提供额外的功能,如认证、授权、请求日志记录等。

  2. Admin Service(管理服务)

    • 这是一个独立的微服务,负责管理相关的功能,如用户管理、权限管理等。

    • 它可以独立部署和扩展,以满足管理功能的需求。

  3. User Service(用户服务)

    • 这是另一个独立的微服务,负责处理与用户相关的功能,如用户注册、登录、个人信息管理等。

    • 它也可以独立部署和扩展,以满足用户功能的需求。

  4. Goods Service(商品服务)

    • 这是负责商品管理的微服务,包括商品的添加、修改、删除等操作。

    • 它可以独立部署和扩展,以满足商品管理的需求。

  5. ...... Service(其他服务)

    • 这表示系统中可能还有更多的微服务,每个服务负责不同的业务功能。

    • 每个服务都是独立的,可以独立部署和扩展。

  6. 微服务架构的特点

    • 独立性:每个服务都是独立的,可以独立开发、部署和扩展。

    • 灵活性:可以使用不同的技术栈来实现不同的服务,以满足特定的需求。

    • 可维护性:由于服务是独立的,修改一个服务不会影响其他服务,从而提高了系统的可维护性。

    • 可扩展性:可以根据需要独立扩展特定的服务,以满足业务需求。

简单来说就是一个网关接收用户请求,并将其分发到不同的服务。每个服务独立运行,负责不同的任务,比如管理、用户或商品。这种设计让系统更灵活、容易维护,但也需要处理服务间的通信和数据同步问题


2. 微服务架构组成与优点

2.1 使用微服务架构需要什么

微服务架构基础组件:

  1. 注册中心负责管理微服务的注册和发现。服务启动时会在注册中心注册自己的信息,其他服务可以通过注册中心查找并调用这些服务。

  2. 服务网关:作为系统的入口点,接收外部请求并路由到相应的微服务。它还可以处理认证、授权、限流等跨服务的公共功能。

  3. 微服务通信:指微服务之间的消息传递和数据交换。服务之间通过API调用、消息队列等方式进行通信。

  4. 链路追踪:用于监控和诊断微服务之间的请求路径和性能问题。它可以帮助追踪请求在服务间的流动,识别延迟和故障点。


2.2 使用微服务架构的优点

  1. 降低代码耦合:代码之间更独立,修改容易。

  2. 降低维护成本:系统更易维护,成本减少。

  3. 灵活扩容:根据需要轻松增加服务能力。

  4. 技术栈不受限:可以使用多种技术,更灵活。


 3. 使用微服务架构的原因

  1. 业务扩张快

    • 未来几年,业务会快速发展。

    • 微服务架构可以灵活应对快速变化的业务需求。

  2. 降低耦合

    • 业务复杂,可以拆分成多个独立服务。

    • 这样每个服务只负责一部分功能,减少相互依赖。

  3. 提高可靠性

    • 服务之间相互独立,一个服务出问题不会影响其他服务。

    • 这样整个系统的稳定性和可靠性更高。


http://www.kler.cn/a/531502.html

相关文章:

  • 读书笔记--分布式架构的异步化和缓存技术原理及应用场景
  • 如何在电脑上部署deepseek
  • 2.3学习总结
  • 给AI加知识库
  • 【Three.js+React】教程001:绘制简单的盒子
  • nodejs:js-mdict 的下载、安装、测试、build
  • Leetcode 3444. Minimum Increments for Target Multiples in an Array
  • OSCP - Proving Grounds - Roquefort
  • 基于物联网技术的实时数据流可视化研究(论文+源码)
  • 高效接口限流:基于自定义注解与RateLimiter的实践
  • 代码随想录day27
  • FunASR的服务启动_3
  • 02.04 数据类型
  • 前端知识速记--CSS篇:display
  • UE5 蓝图学习计划 - Day 12:存储与加载
  • 使用Pytorch训练一个图像分类器
  • 通信易懂唠唠SOME/IP——SOME/IP消息格式
  • 2024-我的学习成长之路
  • DeepSeek:AI领域的创新先锋
  • 使用mybatisPlus插件生成代码步骤及注意事项
  • 飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用
  • 《最小阻力之路》关于愿景的理解和思考
  • NoSQL、时序、搜索……Lindorm 如何一站式搞定多模数据?
  • 《DeepSeek R1:7b 写一个python程序调用摄像头获取视频并显示》
  • SpringMVC全局异常处理+拦截器使用+参数校验
  • C语言的物联网