Spring Cloud Netflix五大组件简介

微服务与微服务架构
微服务的优缺点
优点
缺点
Dubbo与 Cloud
Cloud
的自我保护机制
和的区别
简单对比一下CAP和ACID
内置的七大负载均衡算法
Feign
断路器
服务雪崩、熔断与降低
Zuul
分布式配置中心
先简单了解一下微服务相关知识
微服务与微服务架构
微服务架构是一种架构模式,提倡将单一应用划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合 。服务之间采用轻量级的通信机制交互(基于HTTP的 API) 。
微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度来看就是一种小而独立的处理过程,类似于进程概念,能够自行单独启动或销毁,拥有各自的数据库 。
比如医院中的科室:内科,外科,心脑血管科,耳鼻喉科等 。微服务强调的是个体,微服务架构强调的是整体,是把一个个的微服务整合起来,对外暴露,是一个整体 。
微服务的优缺点 优点缺点Dubbo与 Cloud
Dubbo 最初在 2008 年由捐献开源,很快成为了国内开源服务框架选型的事实标准框架,得到了各行各业的广泛应用 。在 2017 年,Dubbo 正式捐献到软件基金会并成为顶级项目,目前已经发展到了.x的版本,是一款 RPC 服务开发框架 。利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求 。
Cloud是一系列框架的整合 。它利用 Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Boot的开发风格做到一键启动和部署 。Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包 。其中最出名的就是 Cloud 和 Cloud 两大类 。
Dubbo是基于RPC形式的通信,而 Cloud是基于Rest形式的通信,其对比如下
Dubbo
服务注册中心
【Spring Cloud Netflix五大组件简介】 Cloud
服务调用方式
RPC
REST API
服务监控
Dubbo-
Boot Admin
断路器
不完善
Cloud
服务网关

CloudZuul
分布式配置

Cloud
服务跟踪

Cloud
消息总线

Cloud Bus
数据流

Cloud
批量任务

Cloud Task
最大区别:抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式 。这两种方式各有优劣,从一定程度上,后者牺牲了服务调用的性能,但也避免了原生RPC带来的问题 。而且REST比RPC更为灵活,在强调快速演化的微服务环境下,显得更加合适 。
Cloud的功能比Dubbo更加强大,可以与其他项目完美融合

Spring Cloud Netflix五大组件简介

文章插图
Cloud
Cloud 最出名且最常用的五大组件分别是
分布式配置:
是的一个子模块,也是核心模块 。是一个基于Rest的服务,用于定位服务,以实现云端中间层服务发现和故障转移 。功能类似于Dubbo的注册中心() 。包含两个组件: 和
的自我保护机制
某一个微服务不可用了,不会立刻清理,依旧会对该微服务的信息进行保存 。在自我保护模式中,会保护服务注册表中的信息,不再注销任何服务实例 。当它收到的心跳数重新恢复到阈值以上时,该 节点就会自动退出自我保护模式 。设计初衷就是宁可保留错误的服务注册信息,也不盲目注销任何可能健康的服务实例 。