Spring Cloud生态圈简介

来源:互联网 发布:家庭网络布线多少米 编辑:程序博客网 时间:2024/05/16 16:13

说到spring Cloud就不得不提一下微服务,什么是微服务呢?就是Microservice,字面意思来看就是小服务,小型服务,微小型服务,然而它是与传统服务的相对概念。

承载传统服务的Web项目,所有功能集成到一个系统,最终打包成一个war包,部署于Web容器,或单机,或集群,基本上没有什么外部的依赖,其有如下特点: 
(优点) 
- 开发简单直接,集中式管理 
- 基本不会重复开发 
- 功能都在本地,没有分布式的管理开销和调用开销 
(缺点) 
- 开发效率低:所有的开发在一个项目改代码,递交代码相互等待,代码冲突不断 
- 代码维护难:代码功能耦合在一起,新人不知道何从下手 
- 部署不灵活:构建时间长,任何小修改必须重新构建整个项目,这个过程往往很长 
- 稳定性不高:一个微不足道的小问题,可以导致整个应用挂掉 
- 扩展性不够:无法满足高并发情况下的业务需求

经过一些项目的开发,前期倒是方便快捷,写完了事,但是后期是会让人抓狂的,原因不言自明。

微服务的出现,使得应用有效地拆分,实现敏捷开发和部署 。

原先杂糅的系统逻辑,如今被拆分成一个一个完整的服务模块,最后再统一组成一个完整的项目,实现对服务,对功能模块的即插即拔的策略,再也不用像以前那样,比如上线后突然发现哪哪少了一个空格,哪哪又多了一个句号,只得默默重新打包,再部署上线的窘境了,大大缩短加班时间

好了,不瞎扯淡了,Spring Cloud生态圈集成了一堆工具来让我们构建分布式的微服务系统。

首先,来看看官方文档是怎么介绍的: 
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

下面这些开源项目是对Spring Cloud的强有力的增强与补充:

Spring Cloud Config:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

Eureka:云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

Zuul:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。

Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

Spring Cloud Sleuth:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

Spring Cloud Data Flow:大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。

Spring Cloud Security:基于spring security的安全工具包,为你的应用程序添加安全控制。

Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。

Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

Turbine:Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况。

Feign:Feign是一种声明式、模板化的HTTP客户端。

Spring Cloud Task:提供云端计划任务管理、任务调度。

Spring Cloud Connectors:便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务。

Spring Cloud Cluster:提供Leadership选举,如:Zookeeper, redis, Hazelcast, Consul等常见状态模式的抽象和实现。

Spring Cloud Starters:Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

原创粉丝点击