上图只是Spring Cloud体系的一部分,Spring Cloud共集成了19个子项目,里面都包含一个或者多个第三方的组件或者框架!

Spring Cloud 工具框架

1、Spring Cloud Config 配置中心,利用git集中管理程序的配置。

2、Spring Cloud Netflix 集成众多Netflix的开源软件
3、Spring Cloud Bus 消息总线,利用分布式消息将服务和服务实例连接在一起,用于在一个集群中传播状态的变化 
4、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry集成你的应用程序
5、Spring Cloud Cloud Foundry Service Broker 为建立管理云托管服务的服务代理提供了一个起点。
6、Spring Cloud Cluster 基于Zookeeper, Redis, Hazelcast, Consul实现的领导选举和平民状态模式的抽象和实现。
7、Spring Cloud Consul 基于Hashicorp Consul实现的服务发现和配置管理。
8、Spring Cloud Security 在Zuul代理中为OAuth2 rest客户端和认证头转发提供负载均衡
9、Spring Cloud Sleuth SpringCloud应用的分布式追踪系统,和Zipkin,HTrace,ELK兼容。
10、Spring Cloud Data Flow 一个云本地程序和操作模型,组成数据微服务在一个结构化的平台上。
11、Spring Cloud Stream 基于Redis,Rabbit,Kafka实现的消息微服务,简单声明模型用以在Spring Cloud应用中收发消息。
12、Spring Cloud Stream App Starters 基于Spring Boot为外部系统提供spring的集成
13、Spring Cloud Task 短生命周期的微服务,为SpringBooot应用简单声明添加功能和非功能特性。
14、Spring Cloud Task App Starters
15、Spring Cloud Zookeeper 服务发现和配置管理基于Apache Zookeeper。
16、Spring Cloud for Amazon Web Services 快速和亚马逊网络服务集成。
17、Spring Cloud Connectors 便于PaaS应用在各种平台上连接到后端像数据库和消息经纪服务。
18、Spring Cloud Starters (项目已经终止并且在Angel.SR2后的版本和其他项目合并)
19、Spring Cloud CLI 插件用Groovy快速的创建Spring Cloud组件应用。

当然这个数量还在一直增加...

三者之间的关系

微服务是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。Spring Boot是一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的服务治理工具包;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架。

Spring Boot/Cloud是微服务实践的最佳落地方案。

实战经历

遇到问题,寻找方案

2015年初的时候,因为公司业务的大量发展,我们开始对原有的业务进行拆分,新上的业务线也全部使用独立的项目来开发,项目和项目之间通过http接口进行访问。15年的业务发展非常迅速,项目数量也就相应急剧扩大,到了15底的时候项目达60多个,当项目数达到30几个的时候,其实我们就遇到了问题,经常某个项目因为扩展增加了新的IP地址,我们就需要被动的更新好几个相关的项目。服务越来越多,服务之间的调用关系也越来越复杂,有时候想画一张图来表示项目和项目之间的依赖关系,线条密密麻麻无法看清。网上有一张图可以表达我们的心情。

这个时候我们就想找一种方案,可以将我们这么多分布式的服务给管理起来,到网上进行了技术调研。我们发现有两款开源软件比较适合我们,一个是Dubbo,一个是Spring Cloud。

其实刚开始我们是走了一些弯路的。这两款框架我们当时都不熟悉,当时国内使用Spring Cloud进行开发的企业非常的少,我在网上也几乎没找到太多应用的案例。但是Dubbo当时在国内的使用还是挺普遍的,相关的资料各方面都比较完善。因此在公司扩展新业务线众筹平台的时候,技术选型就先定了Dubbo,因为也是全新的业务没有什么负担,这个项目我们大概开发了六个月投产,上线之初也遇到了一些问题,但最终还比较顺利。

在新业务线选型使用Dubbo的同时,我们也没有完全放弃Spring Cloud,我们抽出了一两名开发人员学习Spring Boot我也参与其中,为了验证Spring Boot是否可以到达实战的标准,我们在业余的时间使用Spring Boot开发了一款开源软件云收藏,经过这个项目的实战验证我们对Spring Boot就有了信心。最重要的是大家体会到使用Spring Boot的各种便利之后,就再也不想使用传统的方式来进行开发了。

但是还有一个问题,在选择了Spring Boot进行新业务开发的同时,并没有解决我们上面的那个问题,服务于服务直接调用仍然比较复杂和传统,这时候我们就开始研究Spring Cloud。因为大家在前期对Spring Boot有了足够的了解,因此学习Sprig Cloud就显得顺风顺水了。所以在使用Dubbo半年之后,我们又全面开始拥抱Spring Cloud。

Spring Cloud体系介绍的更多相关文章

  1. Python写的微服务如何融入Spring Cloud体系?

    前言 在今天的文章中小码哥将会给大家分享一个目前工作中遇到的一个比较有趣的案例,就是如何将Python写的微服务融入到以Java技术栈为主的Spring Cloud微服务体系中?也许有朋友会有疑问,到 ...

  2. Java之Spring Cloud概念介绍(非原创)

    文章大纲 一.理解微服务二.Spring Cloud知识介绍三.Spring Cloud全家桶四.参考资料下载五.参考文章 一.理解微服务   我们通过软件架构演进过程来理解什么是微服务,软件架构的发 ...

  3. Spring Cloud体系实现标签路由

    如果你正在使用Spring Cloud体系,在实际使用过程中正遇到以下问题,可以阅读本文章的内容作为后续你解决这些问题的参考,文章内容不保证无错,请务必仔细思考之后再进行实践. 问题: 1,本地连上开 ...

  4. (2)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud是什么?Spring Cloud版本介绍

    ​ Spring Cloud 是一系列框架的有序集合.它利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务注册.服务发现.配置中心.消息总线.负载均衡.断路器.数 ...

  5. Spring Cloud Alibaba 介绍及工程准备

    简介 SpringCloud Alibaba是阿里巴巴集团开源的一套微服务架构解决方案. 微服务架构是为了更好的分布式系统开发,将一个应用拆分成多个子应用,每一个服务都是可以独立运行的子工程.其中涵盖 ...

  6. Spring Cloud Vault介绍

    https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247484838&idx=1&sn=6439ed96133dde ...

  7. Spring Cloud Stream介绍-Spring Cloud学习第八天(非原创)

    文章大纲 一.什么是Spring Cloud Stream二.Spring Cloud Stream使用介绍三.Spring Cloud Stream使用细节四.参考文章 一.什么是Spring Cl ...

  8. Spring Cloud Bus介绍--Spring Cloud学习第七天(非原创)

    一.什么是Spring Cloud Bus二.Spring Cloud Bus之RabbitMQ介绍三.Spring Cloud Bus整合RabbitMQ四.Spring Cloud Bus整合Ka ...

  9. Spring Cloud 子项目介绍

    Spring Cloud由以下子项目组成. Spring Cloud Config 配置中心——利用git来集中管理程序的配置. 项目地址:https://spring.io/projects/spr ...

随机推荐

  1. apple iMac一体机 装双系统 实战! (Apple +Win 7 64bit)Good

    原帖:http://group.zol.com.cn/1/641_485.html 需要准备工具:一个8GU盘X1 (或Win7 安装版系统盘) Windows 7 pro 64bit 位 ISO 文 ...

  2. OSI模型图文说明

    网关工作在第四层传输层及其以上 网络层:路由器 数据链路层:网桥,交换机 物理层:网卡,网线,集线器,中继器,调制解调器 OSI共7层:应用层,表示层,会话层,传输层,数据链路层,物理层. [7]:应 ...

  3. Decorator [ˈdekəreɪtə(r)] 修饰器/装饰器 -- 装饰模式

    装饰模式 -- 原先没有,后期添加的属性和方法 修饰器(Decorator)是一个函数,用来修饰类的行为.这是ES7的一个提案,目前Babel转码器已经支持. 需要先安装一个插件: npm insta ...

  4. Android SDK 更新和下载慢怎么办?

    博客搬家:因为各种原因,我如今的博客将首发于blog.mojijs.com, 能够百度搜索 "姜哥的墨迹技术博客" , 或者 点击这里 本文地址 http://blog.mojij ...

  5. POS配置

    1.配置 (1) 房产局 (2) 银联端 2.运行 (1)   房产端 右击BizMAPSSP项目---Run As—run congfigurations—Java Application—选择Bi ...

  6. spring注解 annotation

    @Resourse(name="  xxx") 意味从上下文找xxx名字一样的然后引入 @Repository("personDao") 意味生成一个 bean ...

  7. Pytorch中的norm跟Numpy中的norm对比

  8. Python 算法(1) 快速排序

    快速排序(quickSort) 快排的思想:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序. 百度百 ...

  9. php 不等待返回的实现方法(异步调用)

    PHP异步执行的常用方式常见的有以下几种,可以根据各自优缺点进行选择: 1.客户端页面采用AJAX技术请求服务器优点:最简单,也最快,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一 ...

  10. Django Drops

    1.Django Intro 2.Django Install (1) PIP安装 sudo apt-get isntall python-pip sudo pip install Django (2 ...