springcloud学习手册-什么是springcloud?

导读 | springcloud 概念

springboot框架

了解springcloud前先简单了解一下springboot框架

springboot是由 Pivotal团队提供的新框架,它设计目的是用来简化新spring应用的初始搭建以及开发过程。它的核心思想就是约定大于配置,它使用了特定的方式来进行配置,简化开发人员的工作。其实:springboot并不是什么新框架,它其实整合了众多框架,像maven整合了很多jar一样,方便开发人员初始化工程和开发过程。

什么是springcloud?

springcloud在springboot的基础上提供了一系列针对分布式场景的基础设施。SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,它包含了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等内容,它用 SpringBoot的开发风格做到一键启动和部署。Spring其实并没有重复制造轮子,它主要就是将各家开发的比较成熟服务框架组合起来,通过SpringBoot风格进行再封装、屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。大家可以理解springcloud是个类似“全家桶”套餐,大家想吃鸡腿吃鸡腿,想吃汉堡吃汉堡。

如下是springcloud组件架构图:

结合这张图介绍一下springcloud主要应用过程:

  1. 所有请求(来自移动端、客户端等)统一通过 网关服务(Zuul proxy)来访问内部服务。
  2. 网关接收到请求后,从注册中心(Eureka)获取可用微服务。
  3. 其中 Ribbon 主要用于均衡负载作用,它可以判断并分发具体的请求到后端的具体应用服务实例,起到分发压力的作用。
  4. 微服务(services)之间通过 Feign 进行通信处理业务,保持服务一致性。
  5. Hystrix 负责处理服务超时熔断。
  6. Turbine 监控服务间的调用和熔断相关指标。

从上面这张图主要可以看出springcloud 主要包含如下几下核心功能:

  1. 分布式/版本化配置。
  2. 服务注册和发现( Netflix Eureka)。
  3. 路由
  4. 服务和服务之间的调用。
  5. 负载均衡。
  6. 断路器 (Hystrix)
  7. 分布式消息传递 (bus)。

下面简单说一下这些核心功能以及都有具体是做什么用的:

Netflix Eureka:Eureka负责服务的注册于发现,如果学习过Zookeeper的话,就可以很好的理解,Eureka的角色和 Zookeeper的角色差不多,都是服务的注册和发现,构成Eureka体系的包括:服务注册中心、服务提供者、服务消费者。

Netflix Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。比如突然某个服务出现了故障,当请求多时,就会发生严重的阻塞影响整体服务的响应。Hystrix会发现某个不在状态不稳定服务,让其它服务调过来响应。

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

Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。可以实现动态获取配置,原理是每隔60s(默认,可配置)从配置源读取一次内容,这样修改了配置文件后不需要重启服务就可以使修改后的内容生效,前提使用archaius的API来读取。

Spring Cloud Config:俗称的配置中心,配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。方便以后统一管理、升级装备。

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

Spring Cloud for Cloud Foundry:Cloud Foundry是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

Spring Cloud Cluster:Spring Cloud Cluster将取代Spring Integration。提供在分布式系统中的集群所需要的基础功能支持,如:选举、集群的状态一致性、全局锁、tokens等常见状态模式的抽象和实现。如果把不同的帮派组织成统一的整体,Spring Cloud Cluster已经帮你提供了很多方便组织成统一的工具。

Spring Cloud Consul:Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.Spring Cloud Consul 封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

springcloud还包含其它组件,咱们这里重点不再介绍.大家可以上网查一下

声明:文章属于个人原创,转载请注明文章出处

原文发布于微信公众号 - 全华班(quanhuaban)

原文发表时间:2017-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互扯程序

SpringBoot 如何在一分钟内整合SSM?

写在前面 前几天看到“互扯程序”技术群(想要入群进行技术讨论请在下方留言)里有人问,什么是SSM?相信99%的人应该知道是什么,那么我给剩下的1%的人再解释一...

4985
来自专栏数据和云

颜值实力派—打造MySQL运行监控环境

作者 | 陈龙,云和恩墨西区工程师,一线服务过金融等行业,精通 oracle 性能优化,故障诊断,特殊恢复领域 。

1122

IAAS与PAAS的开发者视角

在我以前的文章中,解释了云计算的基本概念,包括它的定义,特性和各种服务模式。在本文中,将从开发者的角度对基础设施即服务(IAAS:Infrastrqucture...

2457
来自专栏恰同学骚年

.NET Core微服务之基于Jenkins+Docker实现持续部署(Part 1)

  互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI) => 持续集成指的...

844
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】Java开源web框架汇总(152款)

“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架; 在研究好用和新框架。 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制...

9295
来自专栏吴伟祥

9个基于Java的搜索引擎框架 转

在这个信息相当繁杂的互联网时代,我们已经学会了如何利用搜索引擎这个强大的利器来找寻目标信息,比如你会在Google上搜索情人节如何讨女朋友欢心,你也会在百度上寻...

2734
来自专栏芋道源码1024

深入理解负载均衡

负载均衡是高可用架构的一个关键组件,主要用来提高性能和可用性,通过负载均衡将流量分发到多个服务器,同时多服务器能够消除这部分的单点故障。

1381
来自专栏CSDN技术头条

外行人都能看懂的 Spring Cloud,错过了血亏!

这篇主要来讲讲 Spring Cloud 的一些基础知识。以下是 SpringCloud GitHub Demo ,看完文章的同学可以自己练手玩玩:

1353
来自专栏云计算

从开发者的角度比较IAAS与PAAS

在我之前的文章中,讨论了云计算背后的基本概念,包括其定义,特性和各种服务模型。在本文中,我将更加详细地讨论服务模型,特别是从开发者的角度来比较IAAS和PAAS...

2936
来自专栏Android 开发者

迁移到 Android Gradle Plugin 3.0 | 中文教学视频

1995

扫码关注云+社区