【SpringCloud】如何理解分布式、微服务、集群

简介: 【SpringCloud】如何理解分布式、微服务、集群

一提SpringCloud就会想起分布式、微服务、集群等名词,这几个名词之间有什么关系呢?SpringCloud又是如何实现微服务、分布式和集群的呢?

什么是集群

计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多

什么是分布式

分布式系统是一组计算机,通过网络相互连接传递消息与通信后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标。

什么是微服务

整个服务的是比较微小的,是一个独立的业务模块,专做改业务的事情,是一个独立的功能单元

区别

从上面的解释来看,我觉得微服务就是把一个整体的系统抽象成一个一个微小的服务,每个服务分别部署在不同的服务器上同时实现了自治就是分布式,每个服务在不同的服务器部署多个然后就构成了集群,这就是我对这三个名词的理解,

SpringCloud如何实现的微服务、分布式、集群

注:一般来说,一个子业务我们称为节点。

CAP理论

在讲SpringCloud之前我们一定要弄懂的一个东西就是CAP

C:数据一致性(consistency)

所有节点拥有数据的最新版本

A:可用性(availability)

数据具备高可用性

P:分区容错性(partition-tolerance)

容忍网络出现分区,分区之间网络不可达。

上面说的有点抽象,具体点来说,C就是说的每个节点部署的服务的数据要保持一致,这样才能使每个服务提供一样的结果,A就是说不管哪个节点出现问题不能服务,都不能影响服务的使用,P是指当出现节点不能通信时,就会出现分区,就是说允许出现这种故障,分区容错性(partition-tolerance)这个是必需的,这是客观存在的。


对于分布式可能会出现一些状况,就是某个服务器不连通了,不能使用了

为什么需要SpringCloud

上图中一个大系统被分成了多个子模块,每个模块之间的通信等管理问题需要springCloud去解决

springCloud的基本功能

  • 服务治理:Spring Cloud Eureka
  • 客户端负载均衡:Spring Cloud Ribbon
  • 服务容错保护:Spring Cloud Hystrix
  • 声明式服务调用:Spring Cloud Feign
  • API网关服务:Spring Cloud Zuul
  • 分布式配置中心:Spring Cloud Config
  • 消息总线:Spring Cloud Bus
  • 消息驱动的微服务:Spring Cloud Stream
  • 分布式服务跟踪:Spring Cloud Sleuth

Eureka的治理机制:

服务提供者

服务注册:启动的时候会通过发送REST请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。

服务续约:在注册完服务之后,服务提供者会维护一个心跳用来持续告诉Eureka Server: "我还活着 ” 、

服务下线:当服务实例进行正常的关闭操作时,它会触发一个服务下线的REST请求给Eureka Server, 告诉服务注册中心:“我要下线了 ”。

服务消费者

获取服务:当我们启动服务消费者的时候,它会发送一个REST请求给服务注册中心,来获取上面注册的服务清单

服务调用:服务消费者在获取服务清单后,通过服务名可以获得具体提供服务的实例名和该实例的元数据信息。在进行服务调用的时候,优先访问同处一个Zone中的服务提供方。

Eureka Server(服务注册中心):

失效剔除:默认每隔一段时间(默认为60秒) 将当前清单中超时(默认为90秒)没有续约的服务剔除出去。

自我保护:。EurekaServer 在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%(通常由于网络不稳定导致)。Eureka Server会将当前的实例注册信息保护起来, 让这些实例不会过期,尽可能保护这些注册信息。

目录
相关文章
|
19天前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
124 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
1月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
191 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
3天前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
43 16
|
20天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
6天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
1月前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
262 13
Spring Cloud Alibaba:一站式微服务解决方案
|
22天前
|
Java 关系型数据库 Nacos
微服务SpringCloud链路追踪之Micrometer+Zipkin
SpringCloud+Openfeign远程调用,并用Mircrometer+Zipkin进行链路追踪
180 20
|
11天前
|
Java 关系型数据库 数据库
微服务SpringCloud分布式事务之Seata
SpringCloud+SpringCloudAlibaba的Seata实现分布式事务,步骤超详细,附带视频教程
32 1
|
1月前
|
存储 运维 数据可视化
如何为微服务实现分布式日志记录
如何为微服务实现分布式日志记录
81 1
|
2月前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
154 6