• Spring Cloud体系介绍


    上图只是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。

  • 相关阅读:
    User Agent
    ASP.NET状态管理 APPlication,Session,Cookie和ViewStat用法
    HttpHandler
    转 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决
    跨服务器访问SQLSERVER
    sql字符串函数
    使用aspnet_regsql.exe 创建ASPState数据库,用来保存session会话
    SQL中CONVERT转化函数的用法
    Sql时间函数
    JS创建对象的几种方法
  • 原文地址:https://www.cnblogs.com/borter/p/9570137.html
Copyright © 2020-2023  润新知