博客
关于我
SpringCloud的理解(集群,分布式)
阅读量:794 次
发布时间:2019-03-25

本文共 2053 字,大约阅读时间需要 6 分钟。

微服务与SpringCloud基础解析

用户理解

微服务可以理解为一个集群,这个微服务的工作方式是分布式的。分布式的核心理念是将一个大型应用划分为多个小服务,每个服务部署在不同的服务器上运行。这使得每个小服务都能独立地处理特定的业务,降低了单点故障的风险,同时提高了系统的扩展性和灵活性。然而,单独的一个小服务部署在多台服务器上才叫做集群,而不是分布式。分布式强调的是不同服务器上的功能模块各不相同,为了达成一个共同的目标。

SpringCloud简介

SpringCloud是一套基于Spring框架的开源工具套件,旨在简化微服务架构的构建、部署和管理。它为分布式系统提供了一整套解决方案,涵盖了从服务治理、负载均衡、故障处理到配置管理等多个方面。SpringCloud通过与Netflix Архitechture的集成,模块化地解决了后端服务治理、客户端负载均衡、服务保护、配置管理等问题。

集群、分布式、微服务与SOA的关系

初次接触“集群、分布式、微服务、SOA”等术语时,确实会感到一定的陌生和遥远感。就像刚开始学习Java面向切面编程时,也会觉得充满神秘色彩。然而,真正深入了解这些概念后,会发现它们的本质并非那么令人困惑。

集群的含义

集群可以理解为多台计算机协同工作,通过高效的资源调度和负载均衡,完成一个复杂的任务。每一台计算机都运行相同的软件,在需要时共同承担任务。即使某一台节点发生故障,其他节点仍能继续工作。

分布式的概念

分布式系统由多个互相通信的节点组成,每个节点执行不同的子任务。它们通过网络协同完成一个大型的目标。关键在于节点之间的通信和事务管理。

CAP理论

CAP理论是分布式系统中的核心理论,主要规定了三点要素:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)。在分布式系统中,这三点具有权衡关系,无法同时满足。

  • 一致性(C):确保所有节点访问的是同一版本的数据。
  • 可用性(A):系统需要具备高可用性,快速响应请求。
  • 分区容错性(P):容忍网络分区,保证系统在部分网络中断的情况下仍能正常运行。

SOA与微服务的演进

SOA(面向服务架构)是将业务系统分解为多个独立的服务,通过服务组合实现业务流程。微服务是SOA的深化,在代码层面强调服务的独立性、去耦合性和自动化部署。

微服务架构强调:

  • 单一职责:每个服务专注于一个功能。
  • 边界明确:服务彼此隔离。
  • 异步通信:减少服务间的耦合。
  • 独立部署:服务可以在任何场景下运行。

SpringCloud核心组件

SpringCloud提供了多个核心组件来支持微服务架构的构建与运维:

  • Eureka:服务注册与发现

    • 服务注册:服务提供者自动向注册中心发送注册信息。
    • 心跳检查:维护服务实例的健康状态。
    • 服务下线:支持服务的动态卸载。
  • Ribbon:客户端负载均衡

    • 负载均衡策略:轮询、随机、加权等。
    • 重试机制:确保服务调用不因短暂故障而失败。
  • Hystrix:服务保护

    • 断路器:防止雪崩效应。
    • 资源隔离:线程池隔离,避免HTTP客户端长时间卡顿。
  • Feign:声明式HTTP客户端

    • 简化服务调用:无需手动编写HTTP客户端。
    • 熔断器集成:实现服务的可用性保障。
  • Zuul:API网关

    • 统一入口:外层服务访问的单点网关。
    • 路由规则:基于规则动态路由。
    • 权限校验:对接口进行统一过滤和认证。
  • Config:分布式配置管理

    • 统一配置源:多个应用共享一样的配置文件。
    • 动态刷新:无需重新启动应用即可更新配置。
  • 逐步解析

  • 为什么需要Spring Cloud?

    • 微服务架构带来的问题:服务间依赖、资源管理复杂、高并发下的稳定性。
    • Spring Cloud提供了完整的解决方案:服务治理、负载均衡、服务保护和配置管理。
  • Eureka服务注册-注册中心的作用是学习服务提供者的元数据信息,并维护服务实例库。-服务消费者通过获取注册清单,选择优化的服务实例进行通信。

  • Ribbon负载均衡-客户端负载均衡:轮询、加权、随机。-策略可配置化,适应不同场景需求。

  • Hystrix服务保护-断路器:智能识别故障服务,不再发送请求。-资源隔离:与Ribbon配合实现服务的独立性要求。

  • Feign简化调用-通过声明式编程减少HTTP客户端代码量。-集成Hystrix和Ribbon,实现服务的自动保护。

  • Zuul API网关-解决外层路由复杂性,统一管理服务接口。-提供前置过滤,保障服务的安全性和可用性。

  • Config配置管理-统一管理应用配置,减少重复代码。-动态更新配置,支持环境切换。


  • 结语

    通过对SpringCloud组件的深入理解,可以看到它是如何为微服务架构提供全方位支持的。从基础的服务治理到高级的服务保护,SpringCloud通过模块化的设计满足了分布式系统的各项需求。如果您对SpringCloud还有更多疑问,可以通过实际项目实践和社区资源不断深入学习。

    转载地址:http://fkhuk.baihongyu.com/

    你可能感兴趣的文章
    MuseTalk如何生成高质量视频(使用技巧)
    查看>>
    mutiplemap 总结
    查看>>
    MySQL DELETE 表别名问题
    查看>>
    MySQL Error Handling in Stored Procedures---转载
    查看>>
    MVC 区域功能
    查看>>
    MySQL FEDERATED 提示
    查看>>
    mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
    查看>>
    Mysql group by
    查看>>
    MySQL I 有福啦,窗口函数大大提高了取数的效率!
    查看>>
    mysql id自动增长 初始值 Mysql重置auto_increment初始值
    查看>>
    MySQL in 太多过慢的 3 种解决方案
    查看>>
    MySQL InnoDB 三大文件日志,看完秒懂
    查看>>
    Mysql InnoDB 数据更新导致锁表
    查看>>
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>