SpringCloud使用场景及工作原理--五大组件

本文详细介绍了SpringCloud框架中的五大核心组件:Eureka作为注册中心,Ribbon实现负载均衡,Feign用于远程调用,Hystrix处理服务熔断,以及Skywalking的监控功能。文中对比了Eureka与Nacos的区别,并展示了如何在项目中应用这些组件以实现服务的高可用性和监控。
摘要由CSDN通过智能技术生成

一、SpringCloud5大组件

  • Eureka:注册中心
  • Ribbon:负载均衡
  • Feign   :远程调用
  • Hystrix :服务熔断
  • Zuul/Gateway:网关

 5大组件的工作流程:

SpringCloud 和 SpringCloudAlibba

二、Eureka组件

1、SpringCloud是怎么实现服务注册和服务发现的:

  •  服务注册:服务提供者需要把自己的信息注册大奥eureka,由eureka来保存这些信息,比如   服务名称、ip、端口等等
  • 服务发现:消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用
  • 服务监控:服务提供者会没隔30秒向eureka发送心跳,报告健康状态,如果eureka服务90秒没有心跳,就从eureka中剔除

服务注册和服务发现的工作原理: 

2、Nacos和Eureka的区别

  • Nacos与Eureka的共同点(注册中心)

        ①都支持服务注册和服务拉取

        ②都支持服务提供者心跳方式做健康检测

  • Nacos与Eureka的区别点(注册中心)

        ①Nacos支持服务端主动检测提供者状态:临时实例采用主动检测模式

        ②临时实例心跳不正常会被剔除,非临时实例则不会剔除

        ③Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

        ④Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式

        ⑤Eureka采用AP模式

  • Nacos还支持了配置中心,Eureka则只有注册中心,这也是选择使用Nacos的一个重要原因 

三、Ribbon组件

 1、如何在项目上实现负载均衡:

  • 微服务的负载均衡主要使用了一个组件Ribbon,比如,我们在使用Feign远程调用的过程中,底层的负载均衡就是使用了Ribbon

 Ribbon负载均衡的工作流程:

2、Ribbon负载均衡策略都有哪些

  • RoundRobinRule:简单轮询服务列表来选择服务器
  • WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小
  • RandomRule:随机选择一个可用的服务器
  • BestAvailableRule:忽略那些短路的服务器,并选择并发数较低的服务器
  • RetryRule:重试机制的选择逻辑
  • AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
  • ZoneAvoidanceRule:以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询

3、如何实现自定义负载均衡策略

提供了两种方式:

  1. 创建类实现IRule接口,可以指定负载均衡策略(全局)
  2. 在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)

四、Hystrix组件

1、什么是服务雪崩?怎么解决这个问题?

  • 服务雪崩:一个服务失败,导致整条链路的服务都失败的情形
  • 服务降级:服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃,一般情况在实际开发中与Feign接口整合,编写降级逻辑

代码实现:

  • 服务熔断

Hystrix 熔断机制,用于监控微服务调用情况,默认是关闭的,如果需要开启需要再引导类上添加注释:@EnableCircuitBreaker 如果检测到10秒内请求的失败率超过50%,就触发熔断机制。之后每隔5秒重新尝试请求服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求

总结两个区别点:

服务降级是针对的某个接口不可用,不是针对于服务

服务熔断是针对整个服务不可用

五、Skywalking

你们的微服务是怎么监控的?

我们项目中采用的skywalking进行监控的

  1.  skywalking主要可以监控接口、服务、物理实例的一些状态。特别是在压测的时候可以看到众多服务中的哪些服务和接口比较慢,我们可以针对性的分析和优化。
  2. 我们还在skywalking设置了告警规则,特别是在项目上线以后,如果报错,我们分别设置了可以给相关负责人发送短信和邮件,第一时间知道项目的bug情况,第一时间修复。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值