spring-cloud学习总结(一)

  全书分为12个章节,我认为比较重要的章节是从第3章到第11章,下面开始分别总结:

第三章:Eureka框架

Eureka是服务注册中心,对整个微服务架构起着核心作用,它的架构图如下:

 

Eureka架构中有3个重要的组成部分:服务端、服务提供者和服务调用者;下面对这三者分别介绍:

① 服务器端(server)

server端,提供一个服务器以供后台使用;

② 服务提供者(provide)

client端的服务提供者,有如下工作:

一.向服务器注册服务;

二.发送心跳给服务器;

三.向服务器获取注册列表;

③ 服务调用者(invoke)

对服务进行查找和调用,也属于client端;

第四章:Ribbon框架

Ribbon是负载均衡项目,他在集群中为各个客户端的通信提供了支持,主要功能:实现中间层应用程序的负载均衡

子模块:

ribbon-core:项目核心,包括负载均衡器接口定义、客户端接口定义、内置的负载均衡实现等API;

ribbon-eureka:eureka客户端的负载均衡实现类;

ribbon-httpclient:封装httpclient,提供含有负载均衡的rest客户端

下面再介绍一个ribbon负载均衡器的子模块:

rule:逻辑组件,规定从服务器列表中返回哪个服务器实例;

ping:用定时器确保服务器网络可以连接;

serverlist:服务器列表,有静态和动态两种配置;

第五章:Feign框架

Feign是一个开源项目,目的是简化Web Service客户端的开发。可以利用Feign注释来修饰接口,这种接口可以方位web service;feign还支持插件式的编码器和解码器,利用它们可以对request和response进行不同的封装和解析;下面是feign注解举例;

第六章:Hystrix框架

Hystrix是集群容错框架,通过添加延迟阈值以及容错逻辑,来助我们控制分布式系统间组件的交互,它可以通过隔离服务间的访问点、停止它们之间的级联故障、提供可回退操作实现容错;它的容错机制如下图:

功能:

1.当所依赖的网路服务发生延迟或者失败时,对访问的client程序进行保护;

2.分布式系统中,停止级联故障;

3.网络服务恢复正常后,快速恢复客户端的访问能力;

4.调用失败时,执行服务回退;

5.可支持实时监控、报警和其他操作;

第七章 Zuul框架 

Zuul框架用来构建微服务集群的网关,为微服务群提供代理、过滤、路由等功能;Zuul将外部的请求过程划分为不同阶段,每个阶段都提供了一系列过滤器,可以实现如下功能;

功能:

1.身份验证和安全性

2.观察和监控

3.动态路由:将请求动态路由到不同的服务集群;

4.负载分配:设置每种请求的处理能力,删除超出限制的请求;

5.静态相应处理:提供静态过滤器,直接响应请求;

6.路由的多样化

第八章 微服务中的消息驱动

1.stream框架

它是用来构建消息驱动的微服务框架,包括以下内容:

stream框架自己的模型;

绑定器抽象层,可与消息代理中间件进行绑定;

持久化订阅的支持;

消费组的支持;

Topic分区的支持;

2.RabbitMQ框架

它是一个轻量级的消息代理中间件,支持多种消息通信协定,其中最重要的是AMQP(高级消息队列协议),它定义了“消息客户端”和“消息代理中间件”之间的通信协议,因此两者可以不受开发语言、具体产品约束,AMQP协议图如下:

 3.Kafka框架

它是一个用于处理数据流的分布式消息框架,有如下功能:

构建在系统间进行实时数据传输通道;

构建对数据流进行转换或响应的实时应用;

Kafka框架结构类似RabbitMQ,消息生产者向kafka服务器发送消息,kafka接收消息后,在投递给消费者;

第九章 Spring cloud config

它为分布式系统提供了配置服务器和配置客户端,以此来更好地管理集群中的配置文件;在实际应用中,我们会将这些配置文件存放到外部系统(Git库),而spring cloud config的C/S会读取这些配置;一下是它们各自的功能:

配置服务器:

提供访问配置的服务接口;

对属性进行加密和解密;

嵌入spring boot的应用中;

配置客户端:

绑定配置服务器,远程初始化spring容器;

对属性进行加密和解密;

属性改变时,对其进行重新加载;

提供配置相关的管理端点;

初始化引导程序上下文时,绑定配置服务器和属性解密等;

然后服务器和客户端的结构图如下:

第十章 sleuth框架

它能用于跟踪微服务的调用过程,一般用来整合Zipkin系统(分布式跟踪系统)和ELK系统(数据分析平台),下面作简要介绍:

Zipkin系统

该系统主要用于收集、管理微服务产生的数据,在实际应用中,各个微服务想Zipkin服务器报告过程数据;Zipkin在得到这些数据后,提供了数据查询、分析的功能;

ELK系统

该系统为数据存储、分析提供了一整套解决方案,它包括以下3个项目:

Elasticsearch:一个分布式数据仓库,提供了Restful服务,用来数据存储和分析;

Logstash:用于数据收集、转换,可将数据保存到指定的数据仓库中;

Kibana:可视化的数据管理平台,用于操作Elasticsearch的数据,能提供多种图表展示数据,支持动态报表;

ELK与微服务集群的关系如下图所示:

第十一章 Spring Data框架

该框架的目标是为数据访问提供一个通用模型,它有数据库的关系如下图所示:

spring data框架的核心作用是为DAO层提供统一的数据访问模型,它的功能如下:

提供数据与对象映射的抽象层,同一个对象可以映射为不同的数据库的数据;

根据数据存储接口的方法名,自动实现数据查询;

为各个领域模型提供增删改查的功能;

在原有逻辑基础上,实现自定义数据库操作逻辑;

使用spring data可以实现不同数据库的访问,;下面介绍Spring Data的子模块:

spring data JPA:该模块提供了基本的数据操作功能,可减少数据访问层的开发工作量;

spring data mongoDB:该模块可以轻松操作MongoDB的数据;

spring data Redis:该模块可以操作redis数据库,并简化操作过程;

原文地址:https://www.cnblogs.com/zhzJAVA11/p/8581380.html