一、概述

  前几篇小博客记录了我学习SpringCloud组件的过程,并与工作中所用的Dubbo框架做了一点比较,基本组件:Eureka、Ribbon、Hystrix、Feign、Zuul、Config,当然,这些目前在工作中还未曾使用,但是作为一名程序员,选择了IT行业,你就永远不能被时代落下,真所谓JS的名言:“真正的大师永远怀揣着一颗学徒的心”,机会是给有准备的人的,所以什么都了解一点,生活更多彩一些。

  SpringCloud中文网:https://www.springcloud.cc/

二、总结

(1)Eureka

  官网地址:https://github.com/Netflix/eureka

  ①Eureka采用C-S的设计架构,分为客户端和服务端两部分;服务器端,也被称作是服务注册中心,用于提供服务的注册与发现;客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。

  ②Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。

  ③涉及注解:@EnableEurekaServer、@EnableEurekaClient

(2)Ribbon

  官网地址:https://github.com/Netflix/ribbon

  ①客户端负载均衡

  ②涉及注解:@LoadBalanced、@RibbonClient(配置)

(3)Feign

  官网地址:https://github.com/OpenFeign/feign

  ①Feign是一个声明式的WebService客户端,底层默认实现了Ribbon负载均衡,使用非常简单:接口+注解

  ②涉及注解:@FeignClient("微服务名称")  注:此注解用于接口

(4)Hystrix

  官网地址:https://github.com/Netflix/hystrix

  ①Hystrix是一个用于处理分布式系统的延迟和容错的开源库,我做了服务熔断和降级练习

  ②涉及注解:@HystrixCommad(fallback="方法名")、结合@FeignClient(fallbackFactory=xxx.class)

(5)Zuul

  官网地址:https://github.com/Netflix/zuul

  ①提供代理、路由、过滤三大功能

  ②Zuul服务最终还是会注册到Eureka

  ③涉及注解:@EnableZuulProxy

(6)Config

  官网地址:https://www.springcloud.cc/spring-cloud-config.html

  ①SpringCloud Config分为服务端和客户端

  ②SpringCloud Config为微服务架构中的微服务提供了集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供了一个中心化的外部配置。

  ③涉及注解:@EnableConfigServer

三、展望

  至此、SpringCloud的基本组件:Eureka、Ribbon、Feign、Hystrix、Zuul、Config已经了解了,接下来i就是一些进阶的,比如:

  ①SpringCloud Stream:数据流开发包

  ②SpringCloud Turbine:聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况

  ③SpringCloud Task:提供云端计划任务管理、任务调度

  ④SpringCloud Sleuth:日志收集工具包实现了一种分布式追踪解决方案,封装了Dapper和log-based追踪以及Zipkin和HTrace操作。

  ⑤SpringCloud Security:基于spring security的安全工具包,为应用程序添加安全控制

以及其他方面的学习,例如:

  ①服务部署:Kubernetes、OpenStack

  ②全链路追踪:Zipkin,brave

  ③服务监控:zabbix

  ④SpringCloud CLI:基于Spring Boot CLI,可以以命令行的方式快速建立云组件

  ⑤全局控制:选举leader、全局锁、全局唯一id

  ⑥安全鉴权:Oauth2、openId connect

  ⑦自动化构建与部署:gitlab+jenkins+docker

SpringCloud全家桶学习之一阶段总结(一)的更多相关文章

  1. SpringCloud全家桶学习之Feign负载均衡----Feign(四)

    一.Feign概述 (1)Feign是什么? 官网地址:https://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-f ...

  2. SpringCloud全家桶学习之分布式配置中心----Config(七)

    一.概述 (1)背景 微服务意味着将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中出现大量的服务.由于每个服务都需要配置必要的配置信息才能运行,所以一套集中式的.动态的配置管理 ...

  3. SpringCloud全家桶学习之服务注册与发现及Eureka高可用集群搭建(二)

    一.Eureka服务注册与发现 (1)Eureka是什么? Eureka是NetFlix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故 ...

  4. SpringCloud全家桶学习之概览(一)

    一.概览 根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术.而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现 ...

  5. SpringCloud全家桶学习之消息总线---SpringCloud Bus

    一.概述 ConfigClient(微服务)从ConfigServer端获取自己对应的配置文件,但是目前的问题是:当远程git仓库配置文件发生改变时,每次都是需要重启ConfigCient(微服务), ...

  6. SpringCloud全家桶学习之断路器---Hystrix(五)

    目前我也在摸索着学习Spring Cloud,本节主要摸索的是服务熔断.服务降级.Hystrix服务监控. 一.Hystrix概述 (1)服务雪崩 服务雪崩:多个微服务之间调用的时候,假设微服务A调用 ...

  7. SpringCloud全家桶学习之路由网关----Zuul(六)

    一.Zuul概述 (1)Zuul是什么? Zuul包含了对请求的路由和过滤的两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础:而过滤功能则负责对请求的 ...

  8. SpringCloud全家桶学习之客户端负载均衡及自定义负载均衡算法----Ribbon(三)

    一.Ribbon是什么? Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端  负载均衡的工具(这里区别于nginx的负载均衡).简单来说,Ribbon是Netf ...

  9. 框架用多了真的会死人的,spring-cloud全家桶与mybitais 集成完整示例(附下载)

    ​ 题外话: 看到这一长串包含各种技术名词的标题,一路走来感觉研发深深的被各种框架给绑架了,从我们刚出生最简单的jsp,servlet打天下,到spring mvc的盛行,再到现在spring-boo ...

随机推荐

  1. 【sql】sql必知必会_01

    数据: /* Navicat Premium Data Transfer Source Server : localhost_3306 Source Server Type : MySQL Sourc ...

  2. 工具使用:xmind

    概念 心智图,又称脑图.思维导图.灵感触发图.概念地图或思维地图,是一种图像式思维的工具与及一种利用图像式思考辅助工具来表达思维的工具. 详细的可以查看这里(维基百科)还有这里(百度百科) 用了思维导 ...

  3. span强制不换行

    <nobr>不换行内容</nobr> 无论多少文字均不希望换行显示,超出宽度的内容会显示不出来. <div> <nobr> <span class ...

  4. Flink流处理(二)- 流处理基本概念

    1. Dataflow Programming 在讨论流处理的基本概念之前,我们首先介绍一下数据流编程(dataflow programming)的基本概念与术语. 数据流图 数据流程序一般在由数据流 ...

  5. dea创建Maven工程用c3p0连接数据库报错java.sql.SQLException: Connections could not be acquired from the underlying

    idea   java.sql.SQLException: Connections could not be acquired from the underlying database! 转载自:ht ...

  6. 【转】Java8 Stream 流详解

      当我第一次阅读 Java8 中的 Stream API 时,说实话,我非常困惑,因为它的名字听起来与 Java I0 框架中的 InputStream 和 OutputStream 非常类似.但是 ...

  7. Chrome浏览器添加信任站点

    转载来源:https://zhidao.baidu.com/question/1946829886340846268.html 在浏览器地址栏输入:chrome://net-internals/#hs ...

  8. MFC程序使用控制台打印

    1.在OnCreate窗口创建方法中调用控制台窗口创建方法,创建的窗口是与MFC主窗口共存亡的 参考地址:https://blog.csdn.net/Yong_Qi2015/article/detai ...

  9. 类型type:clusterip和service内部的关系

    类型type:clusterip和service内部的关系 待办 https://stackoverflow.com/questions/41509439/whats-the-difference-b ...

  10. CSS--box

    width is content width height is content height set margin and padding zero leads box to the same wi ...