一、概述

  前几篇小博客记录了我学习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. The number of set(位运算+状态dp)一道十分美妙的题目哦!!!!!!

    Given you n sets.All positive integers in sets are not less than 1 and not greater than m.If use the ...

  2. Python—网络通信编程之tcp非阻塞通信(socketserver)

    服务端代码 import socketserver # 定义一个类 class MyServer(socketserver.BaseRequestHandler): # 如果handle方法出现报错, ...

  3. 新的存储网站,和存储单元dropbox

    新的存储网站,和存储单元dropbox 待办 https://www.dropbox.com/home google 登陆 google邮箱 密码 521google 但是免费存储量只有2G goog ...

  4. python 日志模块 日志格式

    形如: formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s","%Y%b%d-%H: ...

  5. Go操作Elasticsearch

    文章转自   Elasticsearch Elasticsearch 下载 https://www.elastic.co/cn/start 运行 解压后cd到解压目录 ./bin/elasticsea ...

  6. doGet与doPost简单理解

    get和post是http协议的两种方法 这两种方法有着本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串.Post的参数是通过另外的流传递,不通过url,所以可以很大 ...

  7. Unity小知识点大全(二)

    51.Inspector调试模式 在Inspector面板右上角的下拉菜单中,选择Debug命令,启动调试模式,此时将显示组件包含的所有变量,包括私有变量,当运行编辑器时,可以实时查看各组件所有变量的 ...

  8. MFC单文档视图中嵌入GLFW窗口

    开始学习OpenGL由于有一段时间,但是glfw只有窗口区,虽然通过某种手段(移步这里)可以加入工具栏,但仍然无法作为一个标准的GUI,而直接在MFC或Qt里面使用OpenGL API感觉有诸多制肘, ...

  9. truffle编译合约常见问题及其在私链上的部署与交互

    一.初始化truffle项目 truffle init //初始化truffle项目文件夹 将写好的合约文件放到contract文件夹中 truffle  compile  //编译合约 (注意!! ...

  10. JAXB--obj2xml&xml2obj

    参考: https://www.cnblogs.com/mumuxinfei/p/8948299.html  去掉 xsi:type="echoBody" xmlns:xsi=&q ...