✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。
🍎个人主页:Meteors.的博客
💞当前专栏: 微服务
✨特色专栏: 知识分享
🥭本文内容:【1.2】Java微服务:SpringCloud概论
📚 **ps*** : 阅读这篇文章如果有问题或者疑惑,欢迎各位在评论区提出!
----------------------------------------------------- 目录 ----------------------------------------------------------
目录
一. 简介
1. 介绍
2.功能
二、特性
三、组成
1. 各组件浏览(图)
2. 各个组件具体介绍
--------------------------------------------------------------------------------------------------------------------------------
一. 简介
1. 介绍
Spring Cloud是一套用于构建分布式系统的开发工具集合,它基于Spring框架,提供了一系列组件和工具,帮助开发人员快速构建可伸缩、高可用的微服务架构。
2.功能
Spring Cloud致力于解决分布式系统中常见的问题,如服务注册与发现、负载均衡、断路器、配置管理、消息总线等。它提供了一系列基于Spring Boot的微服务模块,可以单独或组合使用,以满足不同的业务需求。
二、特性
(ps:这里推荐浅过一遍,在后面配合具体实现理解)
- Distributed/versioned configuration(分布式/版本化配置):用于将应用程序的设置和配置集中管理,并在整个系统中共享。这有助于确保所有服务都使用相同的配置。
- Service registration and discovery(服务注册和发现):允许服务自动注册并公开其端点。其他服务可以通过服务发现查找和使用这些服务。
- Routing(路由):用于将请求路由到正确的服务实例。可以将负载均衡和服务发现与路由结合起来,以保证高效和可靠的请求路由。
- Service-to-service calls(服务间通信):用于在不同服务之间进行通信,可以使用REST API、RPC或消息代理等不同的方法。
- Load balancing(负载均衡):用于将请求分发到多个服务实例,确保每个实例都能够处理适当的工作量。
- Circuit Breakers(断路机制):用于防止故障的服务破坏整个系统。如果服务出现问题,则断路器可以中断流量并保持系统的稳定性。
- Global locks(全局锁):用于协调分布式系统中的并发操作,以防止数据竞争和死锁问题。
- Leadership election and cluster state(推举和集群状态):用于在分布式系统中选择一个主节点,并跟踪集群的状态。
- Distributed messaging(分布式消息传递):用于异步通信和数据传输,在分布式系统中有很多不同的实现方式。
三、组成
1. 各组件浏览(图)
2. 各个组件具体介绍
- 浏览控制和业务降级
- Hystrix:Netflix开源的一种容错和延迟容忍库,用于处理分布式系统中的故障和延迟。它实现了断路器模式,主要解决由于依赖服务故障导致的级联故障问题。
- Sentinel:阿里巴巴开源的一款轻量级流量控制和熔断降级框架。它提供了实时的流量控制、熔断降级、系统负载保护等功能,能够帮助开发者保护系统的稳定性和可靠性。
- 分布式配置
- SpringCloudConfig:一个用于集中管理和分发应用程序配置的开源框架。它提供了一种简单而强大的方式来管理不同环境下的配置,例如开发环境、测试环境和生产环境。
- Nacos:一个开源的动态服务发现、配置管理和服务管理平台。它提供了服务注册与发现、配置管理和服务治理等功能,能够帮助开发者构建弹性可伸缩的微服务架构。
- 服务链路监控
- Zipkin:一个开源的分布式跟踪系统,用于帮助开发者收集、存储和分析跨多个微服务的请求链路数据。它提供了一个可视化界面,展示了请求在不同微服务之间的调用关系和性能指标,有助于快速定位和解决分布式系统中的性能问题和故障。
- Sleuth:一个为 Spring Cloud 架构提供的分布式跟踪解决方案。它是基于 Zipkin 实现的,用于协调和捕获分布式系统中请求的跟踪信息。Sleuth 可以为微服务架构中的每个请求生成一个唯一的跟踪ID,并在整个请求链路中传递和记录该ID,以便进行分布式调用的跟踪和监控。
- 服务注册和发现
- Eureka:Netflix开源的一个基于RESTful的服务注册与发现组件,用于构建可扩展的、高可用的微服务架构。它的主要功能是实现服务的注册和发现,使得微服务可以自动地在集群中进行通信。
- Consul:一个开源的服务发现和配置工具,由HashiCorp公司开发。它提供了一种简单而可靠的方式来注册、发现和配置分布式系统中的服务。
- 统一网关路由
- SpringCloudGateway:Spring Cloud生态系统中的一个网关组件,用于构建基于微服务的API网关。它基于Spring Framework 5、Project Reactor和Spring Boot 2等技术栈,提供了一种简单、灵活和高效的方式来路由、过滤和转换请求。
- Zuul:Netflix开源的一个基于Java的边缘服务网关,用于构建和管理微服务架构中的API网关。它提供了一种简单、可扩展和高性能的方式来路由、过滤和转换请求。
- 远程过程调用
- OpenFeign:一个声明式的HTTP客户端框架,用于简化基于HTTP的服务之间的通信。它是Spring Cloud生态系统中的一部分,旨在提供一种优雅而简单的方式来定义和使用RESTful服务接口。
- Dubbo:一个由阿里巴巴开源的高性能RPC(远程过程调用)框架,用于简化分布式系统中服务之间的通信。它提供了基于Java的远程方法调用和服务治理的功能,旨在帮助开发者构建可扩展和高可用的分布式应用。
最后,
相关内容会在专栏陆续更新,希望文章对你有所帮助..!
参考资料:
Spring Cloudhttps://spring.io/projects/spring-cloud