SpringCloud 初章

(个人)SpringCloud的学习规划

Spring Cloud是一套微服务治理的框架,几乎考虑到了微服务治理的方方面面。
包含关系如下:Spring>Spring Boot >SpringCloud
学习Spring Cloud的前提是掌握Spring Boot。


springCloud 结构图

这里写图片描述

初学SpringCloud 时,服务的注册和发现很重要,当使用的程度渐深时,再考虑熔断器,监控等其他。
前期可以pring Boot/Cloud搭建几个小项目或者模仿去做一些小例子。
1.外部或者内部的非Spring Cloud项目都统一通过API网关(Zuul)来访问内部服务.
2.网关接收到请求后,从注册中心(Eureka)获取可用服务
3.由Ribbon进行均衡负载后,分发到后端的具体实例
4.微服务之间通过Feign进行通信处理业务
5.Hystrix负责处理服务超时熔断
6.配置中心管理各微服务不同环境下的配置文件。

springCloud子项目说明

nameinstruction
Spring Cloud Config配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion
Spring Cloud Bus事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署
Spring Cloud Netflix针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等
Spring Cloud Config配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion
Spring Cloud Bus事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署
Spring Cloud Netflix针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等
Netflix Eureka云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
Netflix Hystrix容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力
Netflix Zuul边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务
Netflix Archaius配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能
Spring Cloud for Cloud Foundry通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台
Spring Cloud Sleuth日志收集工具包,封装了Dapper,Zipkin和HTrace操作
Spring Cloud Data Flow大数据操作工具,通过命令行方式操作数据流
Spring Cloud Security安全工具包,为你的应用程序添加安全控制,主要是指OAuth2
Spring Cloud Consul封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成
Spring Cloud Zookeeper操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现
Spring Cloud Stream数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息
Spring Cloud CLI基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件

学习路线

学习SpringBoot并实践
学习SpringCloud相关技术,对部分服务进行实践,根据实际情况学习新的技术

0.微服务构建–springboot
1.了解SpringCloud config
2.服务治理-SpringCloud Eureka

服务治理时微服务结构最基本和核心的模块。主要用来实现各个微服务的实例的自动化注册和发现。包括服务注册和服务发现
服务注册:接受每个服务单元的注册,并登记提供的服务,主机、端口号、版本号,通信协议。
服务发现:需要调用指定服务时,向注册中心咨询,获取所有服务的实例,并对其所需要的服务进行访问。

3.服务的调用–ribbon(负载均衡)和feign(服务间调用)

负载均衡是微服务架构中必须实现的内容,它是对系统高可用,降低网络压力,提高处理能力的重要手段之一。ribbon就实现了服务消费者的客户端负载均衡。
实际中对服务依赖的调用不止一处,一个接口会被多处调用,由于restTemplate的封装,每一个调用基本上都是模板化内容,在feign实现下,只需要创建一个接口并用注解来配置它,就能完成对服务方接口的绑定,简化ribbon开发。

4.为保证程序的可用性,防止程序出错导致网络阻塞—Hystrix

微服务架构中,将系统拆分为多个服务单元,各单元应用通过注册和订阅方式互相依赖,依赖通过远程调用的方式进行。当由于网络原因或自身问题出现故障或延迟,直接导致调用方对外服务也出现延迟,若调用方请求不断积压,依赖方形成任务积压,最终导致瘫痪。
在分布式架构中,当服务方发生单元故障,Hystrix的故障监控会向调用方返回一个错误响应,而不是长时等待。避免故障的蔓延。

5.当上述组件完备时,服务还需要个api网关,用来控制路由和负载–zuul

为了保证对外服务的安全性,服务端实现的服务接口都会权限机制。当服务增多时,便于统一维护和检验。API网关-zuul 可以将自己注册为Eureka中的应用,同时也获得了其他微服务的信息,通过定义路由规则方便运维工作,对于签名,校验等冗余问题,zuul有自己的一套过滤机制,可以创建各种校验过滤器。

6.方便服务配置文件统一管理实时更新,分布式配置中心组件-springCloud config server

为分布式服务基础设施和微服务提供集中化的外部配置支持

7.用于广播配置文件的更改或者服务之间的通讯-springCloud bus
8.服务链路追踪Spring Cloud Sleuth

在复杂的微服务架构中,一个请求会发展成一条分布式服务调用链路,在每条链路中,任何一个依赖服务的故障或延迟都会造成请求失败。Sleuth 通过对请求调用的跟踪,帮助快速定位问题根源和监控分析每条链路上的性能。

9.部署spring cloud项目–docker
10.通过http 方式注册服务–consul

以上只是简单的思路,但每个具体的组件涉及到的知识还有很多,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值