前言:
刚梳理完SpringBoot专栏基础入门课程,还没来及休息,马上就开启SpringCloud系列,科技发展如此迅速,你怎可停止脚步,奋斗吧,我的小伙伴。
没有接触SpringBoot基础的可以可参考相关文章:
今日头条:https://www.toutiao.com/i6641535440484565508/
或者百度搜索:“LP框架”找到SpringBoot相关实战文章(视频和文章正在整理中...)
目标在2019年春节前完成SpringBoot极简入门系列文章梳理工作
本讲内容
虽然都是概念性“词条”,不过我们还是有必要总体过一下的,粗略了解下需要掌握哪些技能
圈重点:消费者、生产者、注册中心、微服务、配置中心、熔断器组件、负载均衡组件、远程调度组件、路由网关..
应该不陌生吧,好像第一次接触,自己连什么是消费者、生产者都不知道,所以刚接触的小伙伴不要气馁,以后的章节我们会细化每个组件,从简单玩到精通,甚至玩到极致....
本讲开始,不要困,文章开始首先列下概念点,都是冗余叙述只保留精简描述。
一、Spring Cloud是什么?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
说白了,你可以理解成是SpringCloud是京东商城,它提供了各种东西,类似一个大商场。
二、目前常用的组件
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系列文章正式开启了,准备好了吗,会及时共享一站式解决方案,希望小伙伴们及时参与
更多信息关注今日头条@架构师速成记
最近熬夜,病了2天,导致没更新,作为SpringCloud专栏的第一篇,在这提醒大家:工作重要,但是身体更重要..
下次见
?
本文暂时没有评论,来添加一个吧(●'◡'●)