一 spring cloud 简介

一  spring Cloud 是什么?

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态)。分布式系统的协调导致锅炉板模式,使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。

二  spring Cloud 包含哪些组件?

Spring Cloud专注于为典型用例提供良好的开箱即用体验,并为其他用户提供可扩展性机制。

  • Spring Cloud Netflix:核心组件,可以对多个Netflix OSS开源套件进行整合,包括以下几个组件:
    • Eureka:服务治理组件,包含服务注册与发现
    • Hystrix:容错管理组件,实现了熔断器
    • Ribbon:客户端负载均衡的服务调用组件
    • Feign:基于Ribbon和Hystrix的声明式服务调用组件
    • Zuul:网关组件,提供智能路由、访问过滤等功能
    • Archaius:外部化配置组件
  • Spring Cloud Config:配置管理工具,实现应用配置的外部化存储,支持客户端配置信息刷新、加密/解密配置内容等。
  • Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以及触发后续的处理
  • Spring Cloud Security:基于spring security的安全工具包,为我们的应用程序添加安全控制
  • Spring Cloud Consul : 封装了Consul操作,Consul是一个服务发现与配置工具(与Eureka作用类似),与Docker容器可以无缝集成

三  示例Spring Cloud采用非常声明的方法,通常只需更改类路径和/或注释即可获得许多功能。

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

四  如何理解。

      分布式:将一个大系统拆分为多个子系统。

      集群:即多个服务器服务一个系统,通常一个备用。

      两种方式都是为了负载均衡,将压力经可能由更多的服务器承担,在资源有限的情况下维持系统的稳定和运转。

      但是和spring Cloud 有什么关系?

      这和一个项目的发展有关系,当一个项目由单一功能,变为多个功能,同时还在不停扩展更新,微服务这个概念诞生了。

      微服务:在包含多个子系统的大型系统中,每一个子系统都能够被独立部署,子系统之间关系为松耦合,是为了更好地专注        于自己的服务功能,所以微服务是一个大型系统的架构风格。

       spring Cloud 则是为了更好的管理整个系统,从打包,到子系统之间的通信,崩溃等服务而诞生的,严格意义上说它是快速         构建微服务的工具集合。

       如何理解:

           假设大型系统是分布式的,那么各个服务之间如何进行统一管理呢?于是服务的注册和发现中心(Eureka)出现,                       在注册所有服务之后,服务之间就能够相互感知。

           仅仅感知是不够的,还需要服务之间的交互和交流,这就是服务消费者便出现(Hystrix+ribbon),那么能够交流还要考虑更多,若是某个服务挂了,出现无法交流的情况,ribbon的服务消费者feign(并且内置有断路器)出现了,当某一个服务挂了,无法访问,不至于所有服务都访问停止,避免出现大规模宕机。断路器(Hystrix)作用是当远程服务访问不到,可以改成访问本地的某一方法,类似跳转404。

            好了,现在我们已经有了一个服务了,接下来就是要把所有的服务接口统一起来暴露出去给客户用了,这时候就有了路由网关(zuul),作用就是负载均衡统一服务端口和反向代理。

            既然端口能够统一,那么更多的权限的统一,认证的统一,过滤的统一,由于这些配置麻烦,更新迭代快于是分布式配置中心(Spring Cloud Config)就出现了,它实现了将所有服务的配置文件都抽取到一个统一的地方,这还不够想要配置热更新,还需要告诉服务,于是消息总线(Spring Cloud Bus)出现了,通过总线向所有服务发送更新配置的消息,在发送结束的这个过程,通过服务追踪组件(zipkin ,SpringCloud Sleuth集成了zipkin)能够获得服务与服务之间的关系。

 

    

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值