SpringCloud 极简入门 | 微服务与SpringCloud概念和组件最全集锦,第一讲必须了解你是谁?

前言:

刚过完SpringBoot专栏基础入门课程,还没来及休息,立刻就开启SpringCloud系列,科技发展如此迅速,你怎可中止脚步,奋斗吧,个人小伙伴。redis

没有接触SpringBoot基础的能够可参考相关文章:spring

今日头条:https://www.toutiao.com/i6641535440484565508/数据库

或者百度搜索:“LP框架”找到SpringBoot相关实战文章(视频和文章正在整理中...)安全

目标在2019年春节前完成SpringBoot极简入门系列文章梳理工做架构

本讲内容

虽然都是概念性“词条”,不过咱们仍是有必要整体过一下的,粗略了解下须要掌握哪些技能app

圈重点:消费者、生产者、注册中心、微服务、配置中心、熔断器组件、负载均衡组件、远程调度组件、路由网关..负载均衡

应该不陌生吧,好像第一次接触,本身连什么是消费者、生产者都不知道,因此刚接触的小伙伴不要气馁,之后的章节咱们会细化每一个组件,从简单玩到精通,甚至玩到极致....框架

本讲开始,不要困,文章开始首先列下概念点,都是冗余叙述只保留精简描述。分布式

1、Spring Cloud是什么?

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

说白了,你能够理解成是SpringCloud是京东商城,它提供了各类东西,相似一个大商场。

 

2、目前经常使用的组件

2.1 Spring Cloud Config 
服务配置中心,将全部的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其余服务向配置中心读取配置。Spring Cloud Config使得服务的配置统一管理,并能够在不人为重启服务的状况下进行配置文件的刷新。就像数据库的配置、redis的配置等通用配置均可以用Spring cloud config管理,目前咱们也正在用这个组件,能简化一些工做。

2.2 Spring Cloud Netflix 
包装了Netflix公司的微服务组件实现的,也是Spring Cloud核心组件,包括Eureka,Hystrix,Zuul,Archaius。(目前SpringCloud好似正在弃用Netflix系列组件,无论怎样,大多数人群仍是在使用的)

2.3 Eureka 
服务注册和发现组件(咱们使用中...)

2.4 Hystrix 
熔断器组件。它经过控制服务的API接口的熔断来转移故障,防止微服务系统发生雪崩效应。另外Hystrix可以起到服务限流和服务降级的做用。使用Hystrix Dashboard组件监控单个服务的熔断状态,使用Hystrix Turbine组件能够监控多个服务的熔断器的状态。(使用中..)

2.5 Zuul 
智能路由网关组件。可以起到智能路由和请求过滤的做用,内部服务API接口经过Zuul网关统一对外暴露,防止内部服务敏感信息对外暴露。也能够实现安全验证,权限控制。(咱们使用中...不过springcloud gateway用了一段时间了,打算用之代替)

2.6 Feign 
声明式远程调度组件。(使用中...)

2.7 Ribbon 
负载均衡组件(使用中...)

2.8 Archaius 
配置管理API组件,一个基于Java的配置管理库,主要用于多配置的动态获取。(貌似挺好玩,有时间研究下,知道的朋友能够给个意见,以为对咱们挺有用,先画个重点)

2.9 Spring Cloud Bus 
消息总线组件,常和Spring Cloud Config配合使用,用于动态刷新服务的配置。(用过一段时间,客户不大,组件四不四少点好呢?果断去掉了)

2.10 Spring Cloud Sleuth 
服务链路追踪组件,封装了Dapper,Zipkin,Kibina等组件,能够实时监控服务链路调用情况。(后期研究下)

2.11 Spring Cloud Data Flow 
大数据操做组件,它是Spring XD的替代品,也是一个混合计算模型,能够经过命令行的方式操做数据流

2.12 Spring Cloud Consul 
该组件是Spring Cloud对Consul的封装,和Eureka相似,它是一个服务注册和发现组件。(观摩中)

2.13 Spring Cloud Zookeeper 
该组件是Spring Cloud对Zookeeper的封装,也是用于服务注册和发现(dubbo的时候用过)

2.14 Spring Cloud Stream 
数据流操做组件,能够封装 Redis,RabbitMQ,Kafka等组件,实现消息的接受和发送。

2.15 Spring Cloud CLI 
该组件是对Spring Boot CLI的封装,可让用户以命令行方式快速搭建和运行容器。

2.16 Spring Cloud Task 
该组件基于Spring Tsak,提供任务调度和任务管理的功能
...暂且这些,本篇会持续更新此篇(凌晨4点了),送张网上的调用图

三:什么是微服务(Microservice)

         微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务。这些小的Web服务能够独立地编译及部署,并经过各自暴露的API接口相互通信。它们彼此相互协做,做为一个总体为用户提供功能,却能够独立地进行扩。

   微服务架构须要的功能或使用场景(黑色部分圈重点

  1:咱们把整个系统根据业务拆分成几个子系统。

 2:每一个子系统能够部署多个应用,多个应用之间使用负载均衡(分布式)。

 3:须要一个服务注册中心,全部的服务都在注册中心注册,负载均衡也是经过在注册中心注册的服务来使用必定策略来实现。

 4:全部的客户端都经过同一个网关地址访问后台的服务,经过路由配置,网关来判断一个URL请求由哪一个服务处理。请求转发到服务上的时候也使用负载均衡

 5:服务之间有时候也须要相互访问。例若有一个用户模块,其余服务在处理一些业务的时候,要获取用户服务的用户数据。

 6:须要一个断路器,及时处理服务调用时的超时和错误,防止因为其中一个服务的问题而致使总体系统的瘫痪。

 7:还须要一个监控功能,监控每一个服务调用花费的时间等。

....

我的建议SpringCloud为主,其它主流的微服务框架:Dubbo、thrift、Hessian等了解下(我的是Dubbo转成的SpringCloud)

不过也是看公司技术的选型,不过如何本身提早了解SpringCloud绝对是件正确的决策

 

End

最后:SpringCloud系列文章正式开启了,准备好了吗,会及时共享一站式解决方案,但愿小伙伴们及时参与

更多信息关注今日头条@架构师速成记