SpringCloud简介

  • 微服务介绍:

  微服务是一种架构风格,一个大型复杂的系统是由一个或多个微服务组成的,系统间的各个微服务可以独立部署,每个微服务间是松耦合的,每个微服务只关注于完成一件任务,每个任务代表一个小的业务能力。

  微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程。                 

----来自百度百科

  • 微服务中的spring-cloud

  Spring Cloud是一个相对比较新的微服务框架,2016n年推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。

  Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

----来自简书

  • Eureak

  Eureka是Spring Cloud Netflix微服务套件中的一部分,本身是一个基于REST的服务,可以与Springboot构建的微服务很容易的整合起来。

  Eureka包含了服务器端Eureka Server和客户端组件Eureka Client。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。

  Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就别一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
  Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。
  

一、服务生产者启动时,向服务注册中心注册自己提供的服务

二、服务消费者启动时,在服务注册中心订阅自己所需要的服务

三、注册中心返回服务提供者的地址信息个消费者

四、消费者从提供者中调用服务

 

  • Ribbon
    • Ribbon客户端组件, Netflix发布的开源项目
    • 主要功能:提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。
    • 提供一系列完善的配置项如连接超时,重试等。
    • 在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。简单地说,Ribbon是一个客户端负载均衡器。
    • 工作时分为两步:第一步先选择 Eureka Server, 它优先选择在同一个Zone且负载较少的Server;第二步再根据用户指定的策略,在从Server取到的服务注册列表中选择一个地址。其中Ribbon提供了多种策略,例如轮询、随机、根据响应时间加权等。
  • Feign
    • 声明式的web service客户端,使编写web service客户端更容易
    • 创建接口,为接口添加注解,即可使用Feign
    • Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。
    • Spring Cloud为Feign添加了Spring MVC的注解支持,并整合了Ribbon和Eureka来为使用Feign时提供负载均衡。
  • Hystrix
    • 熔断器,容错管理工具,通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
    • 具备服务降级、服务熔断、线程隔离、请求缓存、请求合并以及服务监控等强大功能。
    • 实现了线程隔离、断路器等一系列的服务保护功能。

 

posted @ 2018-09-03 22:46  handsomecui  阅读(456)  评论(0编辑  收藏  举报