微服务技术概念

1.集群

cluster 同一种软件服务的多个服务节点共同为系统提供服务过程 称之为该软件服务集群。

2.分布式

distribute 不同软件集群共同为一个系统提供服务 这个系统称之为分布式系统。

3.微服务

微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署,运行在自己的进程里,基于分布式的管理

  • 基于原来单个应用开发出一系列微小服务
  • 每个服务运行在自己计算机进程里面
  • 每个服务基于项目中业务进行拆分
  • 拆分出来的每个服务独立部署
  • 这些服务都是基于分布式管理

4.微服务的解决方案

  • Dubbo (阿里系) --> springboot+dubbo+zookeeper 最早期
  • Spring Cloud
    • Spring Cloud NetFlix 基于美国Netflix公司开源的组件进行封装
    • Spring Cloud alibaba 阿里巴巴在Spring cloud netflix基础上封装了
    • Spring Cloud Spring spring官方在此基础进行二次封装优化

5.Spring Cloud 核心组件

- eurekaserver、consul、nacos  	 服务注册中心组件
- rabbion & openfeign  			  服务负载均衡 和 服务调用组件
- hystrix & hystrix dashboard     服务断路器  和  服务监控组件
- zuul、gateway 					 服务网关组件
- config 						  统一配置中心组件
- bus                             消息总线组件
......

6.版本对应

在这里插入图片描述

7.服务注册中心

​ 所谓服务注册中心就是在整个的微服务架构中单独提出一个服务,这个服务不完成系统的任何的业务功能,仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能。

- 可以对所有的微服务的信息进行存储,如微服务的名称、IP、端口等
- 可以在进行服务调用时通过服务发现查询可用的微服务列表及网络地址进行服务调用
- 可以对所有的微服务进行心跳检测,如发现某实例长时间无法访问,就会从服务注册表移除该实例。

8.常用的注册中心

​ springcloud支持的多种注册中心Eureka(netflix)、Consul(Go)、Zookeeper(java)、以及阿里巴巴推出Nacos(java)。

9.Eureka

​ Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务注册和发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。

10.Ribbon组件实现负载均衡原理原理

​ 根据调用服务服务id去服务注册中心获取对应服务id的服务列表,并将服务列表拉取本地进行缓存,然后在本地通过默认的轮询的负载均衡策略在现有列表中选择一个可用节点提供服务
==注意:==客户端负载均衡

11.Ribbon负载均衡策略

1.ribbon负载均衡算法
- RoundRobinRule         		轮训策略	按顺序循环选择 Server
- RandomRule             		随机策略	随机选择 Server
- AvailabilityFilteringRule 可用过滤策略
 	`会先过滤由于多次访问故障而处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对剩余的服务列表按照轮询策略进行访问

- WeightedResponseTimeRule  响应时间加权策略   
	`根据平均响应的时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越高,刚启动时如果统计信息不足,则使用		
		RoundRobinRule策略,等统计信息足够会切换到

- RetryRule                 重试策略          
	`先按照RoundRobinRule的策略获取服务,如果获取失败则在制定时间内进行重试,获取可用的服务。
	
- BestAviableRule           最低并发策略     
	`会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务  

12.OpenFeign 组件

Feign是一个声明式的伪Http客户端。使用Feign,只需要创建一个接口并注解,它具有可插拔的注解特性。

13.OpenFeign默认超时时间修改

feign:
  okhttp:
    enabled: true
  httpclient:
    enabled: false
  client:
    config:
      default:
        connectTimeout: 2000
        readTimeout: 3000 # 设置超时3s

14.Hystrix组件

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,Hystrix通过隔离服务之间的访问点、停止它们之间的级联故障以及提供后备选项来实现这一点,所有这些都可以提高系统的整体弹性。

15.服务雪崩&服务熔断服务降级

  1. 服务雪崩:在微服务之间进行服务调用是由于某一个服务故障,导致级联服务故障的现象,称为雪崩效应。
  2. 服务熔断:
    • “熔断器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器(hystrix)的故障监控,某个异常条件被触发,直接熔断整个服务。向调用方法返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,就保证了服务调用方的线程不会被长时间占用,避免故障在分布式系统中蔓延,乃至雪崩。如果目标服务情况好转则恢复调用。服务熔断是解决服务雪崩的重要手段。
  3. 服务降级:
    • 服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此缓解服务器的压力,以保证核心任务的进行。同时保证部分甚至大部分任务客户能得到正确的响应。

16.Hystrix断路器的开启条件和流程以及默认的备选处理(服务端熔断)

在这里插入图片描述

17.openfeign调用服务过程集成Hystrix依实现默认备选处理

在这里插入图片描述

18.服务网关

什么是服务网关?

  1. 什么是网关 Gateway (Service Gateway)

    网关统一服务入口,可方便实现对平台众多服务接口进行管控

  2. 网关作用

  • 网关统一所有微服务入口
  • 网关可以实现请求路由转发(router dispatcher)以及请求过程负载均衡
  • 访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等

网关 = 路由转发 + 过滤器

  • 路由转发:接收一切外界请求,转发到后端的微服务上去;
  • 在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成。

19.Springcloud gateway

spring cloud gateway 组件,基于springboot2.x 和 spring webFlux 和 Reactor 构建 响应式异步非阻塞IO模型。

网关细节,断言

在这里插入图片描述

gateway filter 过滤

在这里插入图片描述

20.Config组件

​ config(配置)又称为 统一配置中心顾名思义,就是将配置统一管理,配置统一管理的好处是在日后大规模集群部署服务应用时相同的服务配置一致,日后再修改配置只需要统一修改全部同步,不需要一个一个服务手动维护。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值