• 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数据库,并简化操作过程;

  • 相关阅读:
    词频统计作业--第一次软工作业
    个人作业-《移山之道》读后感
    第一次作业
    个人阅读作业
    结对代码 互审意见
    电梯调度程序结对编程
    《代码大全2》阅读笔记
    Hibernate的事务处理机制和flush方法的用法
    dubbo&hsf&spring-cloud简单介绍
    Redis与Memcached的区别
  • 原文地址:https://www.cnblogs.com/zhzJAVA11/p/8581380.html
Copyright © 2020-2023  润新知