对spring cloud的个人理解

1:对springcloud理解?

Spring cloud是一个基于Spring Boot实现的服务治理工具包,用于微服务架构中管理和协调各个服务的。

 

spring cloud 是一系列框架的有序集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。

2:为什么要使用springcloud?

spring开发配置太复杂。springboot简化了spring项目开发。而springboot虽然开发服务容易,服务管理却不好整,所以出来了cloud来管理服务;

  1:单体项目的缺点

①编译难,部署难,测试难

②技术选择难

  ③扩展难

使用微服务架构就可以解决单体项目缺点。

2:微服务的优点

1复杂度可控-每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率

2独立部署-微服务具备独立的运行进程所以可以独立部署

3技术选型灵活-每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈甚至重构微服务

4容错-在微服务架构下,故障会被隔离在单个服务中

5扩展- 每个服务可以根据实际需求独立进行扩展

 

微服务架构。随着系统业务量的不断增多,单一的一套系统可能无法对应高并发,且系统变得越来越臃肿,后期难以维护。这种情况下会采用微服务架构设计,为了让单一模块变得更加清晰容易维护,且使某个模块儿的负载能力变得更加强大,添加集群也更为方便。

3:对springcloud各组件的理解

Springcloud大概有接近二十个组件,常用的有服务发现注册Eureka 、配置中心config、服务网关Zuul 、负载均衡Ribbon (feign包含了他)、断路器Hystrix (feign包含了他)

 

 

由于是微服务架构,由多个单体项目组成,就会有各自的通信地址,所以我们用服务发现注册Eureka来管理通信地址,配置中心config来管理配置文件并放到gitee上去保存服务发现注册包含了服务端EurekaServer客户端EurekaClient(可以讲心跳机制),微服务EurekaServer在启动时会将通信地址发给注册中心EurekaClient,形成通信列表,也就是服务注册;微服务从注册中心获取一份微服务通信地址,自己向别的微服务通过通信地址找到的该微服务通信地址基于HTTP发起请求叫做服务发现

当有多个微服务时,根据业务需求可能会有多个服务者,也就是功能一样的两个模块。需要对他们发起的请求进行处理,所以我们需要负债均衡负载均衡Ribbon通过负载均衡来控制请求的分发,负载均衡常用算法有轮询(公平,两个都一样),随机,加权轮询(哪个厉害点就多给点,能者多劳)。

但是一个服务出现延迟时,所有的请求都阻塞在依赖的服务高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险也就是雪崩,所以我们需要用到断路器Hystrix,将出现问题的服务通过熔断、降级等手段隔离开来,这样不影响整个系统的主业务,所以维护起来更方便。具体方式有:资源隔离线程池隔离和信号量隔离),熔断,半熔断,闭合),降级服务熔断后返回一个预先设定好的托底数据

当服务都能正常运行时,我们不能让所有都来访问,要有一个保安来拦截不该进来的请求,比如爬虫和其余不合法的请求,所以我们用到了服务网关Zuul,zuul还能自定义过滤器,比如自定义一个accesstoken,不带accesstoken的不让访问。有效的保证了服务的安全性。

你可能感兴趣的:(大体理解,java,spring,spring,boot)