SpringCloud分布式高并发微服务介绍(一)

1.SpringCloud介绍

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。

2.特性

Spring Cloud专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖。

  • 分布式/版本化配置

  • 服务注册和发现

  • 路由

  • service - to - service调用

  • 负载均衡

  • 断路器

  • 分布式消息传递 

3.Spring Cloud与Dubbo对比

Spring Cloud和Dubbo又有什么不同那,首先,我们看下有什么相同之处,它们两都具备分布式服务治理相关的功能,都能够提供服务注册、发现、路由、负载均衡等。说到这,Dubbo的功能好像也就这么多了,但是Spring Cloud是提供了一整套企业级分布式云应用的完美解决方案,能够结合Spring Boot,Docker实现快速开发的目的,所以说Dubbo只有Spring Cloud的一部分RPC功能,而且也谈不上谁好谁坏。不过,Dubbo项目现已停止了更新,淘宝内部由hsf替代dubbo,我想这会有更多人倾向Spring Cloud了。

从开发角度上说,Dubbo常与Spring、zookeeper结合,而且实现只是通过xml来配置服务地址、名称、端口,代码的侵入性是很小的,相对Spring Cloud,它的实现需要类注解等,多少具有一定侵入性。

4.Spring Cloud 组件架构

SpringCloud分布式高并发微服务介绍(一)

5.Spring Cloud 分布式开发五大神兽

    5.1服务发现——Netflix Eureka

    SpringCloud分布式高并发微服务介绍(一)

一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

    5.2客服端负载均衡——Netflix Ribbon

    SpringCloud分布式高并发微服务介绍(一)

完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:

  • 简单轮询负载均衡

  • 加权响应时间负载均衡

  • 区域感知轮询负载均衡

  • 随机负载均衡

    5.3断路器——Netflix Hystrix

SpringCloud分布式高并发微服务介绍(一)
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作

5.4服务网关——Netflix Zuul

SpringCloud分布式高并发微服务介绍(一)

 类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

    5.5分布式配置——Spring Cloud Config

SpringCloud分布式高并发微服务介绍(一)

这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。