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 条评论
登录 后参与评论

相关文章

来自专栏java思维导图

微服务架构的服务与发现-Spring Cloud

简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调...

725
来自专栏Java技术

缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题!

前面一节说到了《为什么说Redis是单线程的?》,今天给大家整理一篇关于Redis经常被问到的问题:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等概念的入门...

871
来自专栏Linux驱动

1.电源管理-4种休眠方式状态

983
来自专栏Java学习123

一句话概括下spring框架及spring cloud框架主要组件

3017
来自专栏性能与架构

Redis Cluster 迁移案例

背景简介 Grab 是东南亚的打车巨头,app 下载量已有 5500 万,司机有 120 万 app 与 server 通信时需要使用一个认证 token,Gr...

3546
来自专栏Java技术

Spring Cloud微服务全家桶主要组件及简要介绍

微服务是最近的一两年的时间里是很火的一个概念。感觉不学习一下都快跟不上时代的步伐了,下边做一下简单的总结和介绍。

563
来自专栏腾讯云数据库(TencentDB)

如何设计和实现高可用的MySQL

王甲坤,腾讯高级工程师、腾讯云关系型数据库MySQL负责人,拥有多年客户端、数据库研发经验。在IOS客户端、MySQL、PostgreSQL、SQL Serve...

8.3K2
来自专栏大数据

Spring 数据处理框架的演变

定量分析的成败在很大程度上取决于采集,存储和处理数据的能力。若能及时地向业务决策者提供深刻并可靠的数据解读,大数据项目就会有更多机会取得成功。

5696
来自专栏JAVA技术zhai

Spring Cloud“小弟”的十八般武艺

​ ? Spring Cloud是什么鬼? Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设...

27710
来自专栏DevOps时代的专栏

微服务之基于Docker的分布式企业级实践

1993

扫码关注云+社区