Java面试-微服务篇-SpringCloud

Java面试-微服务篇-SpringCloud

  • SpringCloud 常见组件
  • 注册中心Eureka, Nacos
  • 负载均衡Ribbon
  • 服务雪崩, 熔断降级
  • 微服务的监控
  • 来源

SpringCloud 常见组件

通常情况下

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

SpringCloudAlibaba

  • 注册中心/配置中心: Nacos
  • 负载均衡: Ribbon
  • 服务调用: Feign
  • 服务保护: sentinel
  • 服务网关: Gateway

在这里插入图片描述

注册中心Eureka, Nacos

  • 服务注册和发现(eureka为例)

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

    在这里插入图片描述

  • nacos和eureka的区别

    • nacos和eureka的共同点(注册中心)
      • 都支持服务注册和服务拉取
      • 都支持服务提供者心跳方式做健康检测
    • nacos和eureka的区别(注册中心)
      • nacos支持服务端主动检测提供者状态: 临时实例使用心跳模式, 非临时实例使用主动检测模式
      • 临时实例心跳不正常会被剔除, 非临时实例不会被剔除
      • nacos支持服务列表变更的消息推送模式, 服务列表更新更及时
      • nacos集群默认采用AP方式(高可用模式), 当集群中操作非临时实例时, 采用CP模式(强一致模式); eureka采用AP方式(高可用模式)
    • nacos支持配置中心, eureka只有注册中心

    在这里插入图片描述

负载均衡Ribbon

  • 实现Ribbon负载均衡
    在Feign远程调用过程中, 底层的负载均衡就是使用Ribbon
    在这里插入图片描述
  • Ribbon负载均衡策略
    • RoundRobinRule: 简单轮询服务列表来选择服务器
    • WeightedResponseTimeRule: 按照权重来选择服务器,响应时间越长,权重越小
    • RandomRule: 随机选择一个可用的服务器
    • BestAvailableRule:忽略那些短路的服务器,并选择并发数较低的服务器
    • RetryRule:重试机制的选择逻辑, 轮询服务器, 对于失效的服务进行不断地重试获取服务器
    • AvailabilityFilteringRule: 可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
    • ZoneAvoidanceRule(默认策略): 区域敏感策略, 以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。首先根据调用方的区域按照区域就近原则选择服务器, 而后再对Zone内的多个服务做轮询(没有区域就是轮询)
  • 自定义负载均衡策略
    • 创建类实现IRule接口, 可以指定负载均衡策略(全局)
    • 在客户端的配置文件中, 可以配置某一个服务调用的负载均衡策略(具备)
      在这里插入图片描述

服务雪崩, 熔断降级

  • 什么是服务雪崩, 如何解决
    • 服务雪崩: 一个服务失败, 导致整条链路的服务都失败的情形
    • 服务降级: 服务自我保护的一种方式, 或者保护下游服务的一种方式, 用于确保服务不会受请求突增影响变得不可用, 确保服务不会崩溃, 一般在实际开发中与feign接口整合, 编写降级逻辑
      在这里插入图片描述
    • 服务熔断(Hystrix): 默认关闭, 需要手动打开(在引导类上添加注解@EnableCircuitBreaker). 如果检测到10秒内请求的失败率超过50%, 就触发熔断机制. 之后每隔5秒重新尝试请求微服务, 如果微服务不能响应, 继续走熔断机制. 如果微服务可达, 则关闭熔断机制, 恢复正常请求.

微服务的监控

SkyWalking为例

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

来源

黑马程序员. 新版Java面试专题视频教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的天然气工程运维系统的设计和实现

项目编号: S 022 ,文末获取源码。 \color{red}{项目编号:S022,文末获取源码。} 项目编号:S022,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程…

服务限流算法:从令人头疼到信手拈来

前言 随着系统规模的扩大和用户量的增加,服务限流成为了一个非常重要的话题。一方面,系统需要能够处理大量的请求,不至于因为负载过高而崩溃;另一方面,又需要避免恶意攻击或者其他异常情况对系统造成影响。本文将介绍…

npm相关和私有云

安装node时npm会自动安装,npm也可以单独安装。 package.json 在使用npm时,package.json文件是非常重要的,因为它包含了关于项目的必要信息,比如名称、版本、依赖项等。在初始化新项目时,通常会使用npm init命令生成一…

pip安装python包到指定python版本下

python -m pip install 包名1.命令行进入到指定python安装目录。比如我电脑上有python3.8也有python3.9。准备给python3.9安装指定的包

【青书学堂】 2023年第二学期 HTML5+CSS3(直播课) 作业

【青书学堂】 2023年第二学期 HTML5CSS3(直播课) 作业 为了方便日后复习,青书学堂成人大专试题整理。 若有未整理的课程,请私信我补充,欢迎爱学习的同学们收藏点赞关注!文章内容仅限学习使用!!!…

3.OpenFeign的使用

OpenFeign 文章目录 OpenFeign一. 什么是OpenFeign二. OpenFeign基础使用1.添加依赖2.配置Nacos配置信息3.在项目中开启OpenFeign4.编写OpenFeign调用代码5.调用OpenFeign接口 三. OpenFeign内置的超时重试机制1.配置超时重试2.覆盖Retryer对象 四.自定义超时重试机制1.自定义超…

Hive中常出现的错误(不定时更新)

1.加载数据失败 hive> load data local inpath /home/user/hive.txt into table studentl> ; FAILED: SemanticException [Error 10001]: Line 1:56 Table not found studentl hive> load data local inpath /home/user/hive.txt into table student; Loading data to…

技术分享| anyRTC之RTN网络

RTN(Real-time Network)中文名:实时音视频传输网络。 RTN是最近几年由各大RTC的云厂商提出的一个全新架构的音视频实时传输网络概念。类似于直播的CDN网络,RTN是对音视频的实时性又强烈要求的场景而设计的,原理上全球端到端的时延通过RTN网络…

JSP EL表达式获取list/Map集合与java Bean对象

上文 JSP EL表达式基本使用 中 我们对EL表达式做了一个基本的了解 也做了基础的字符串数据使用 那么 我们可以来看一下我们的集合 首先 list 这个比较简单 我们直接这样写代码 <% page import"java.util.ArrayList" %> <% page import"java.util.Lis…

基于C#实现优先队列

一、堆结构 1.1性质 堆是一种很松散的序结构树&#xff0c;只保存了父节点和孩子节点的大小关系&#xff0c;并不规定左右孩子的大小&#xff0c;不像排序树那样严格&#xff0c;又因为堆是一种完全二叉树&#xff0c;设节点为 i,则 i/2 是 i 的父节点&#xff0c;2i 是 i 的…

安卓开发之HTTP API服务接口设计(基于okhttp3请求)

安卓中的请求 OkHttp3 是一个开源的 Java/Android HTTP 客户端库,由 Square 公司开发。它提供了简洁和高效 的 API ,用于进行 HTTP 请求、处理响应以及与服务器进行通信。 以下是 OkHttp3 的一些主要特点和功能: 简单易用: OkHttp3 提供了简洁的 API ,使得发送 HTTP 请求变…

信息系统的安全保护等级的五个级别

信息系统的安全保护等级分为五级&#xff1a;第一级为自主保护级、第二级为指导保护级、第三级为监督保护级、第四级为强制保护级、第五级为专控保护级。 法律依据&#xff1a;《信息安全等级保护管理办法》第四条 信息系统的安全保护等级分为以下五级&#xff1a;   &#…

【C语言】计算实时太阳角度(高度角、方位角),以及使用stm32单片机实时获取时间戳

整体计算方法 在编写该代码的过程中寻找了多篇博文和论文&#xff0c;综合所有文章且按网上的以0时的方位角的0&#xff0c;且随时间累加累加至360度。我修改了博文和论文的一些角度的计算方法。得到一下代码与网站计算的方位角相互验证过&#xff0c;误差不超过1 验证网站 太…

LoRaWAN 中国地区文件详细解读

目录 一、LoRaWAN简介 二、CN470-510地区参数分析 1.信道频率 2.支持功率 3.支持空速 4.最大负载大小 5.接受窗口参数 三、CN470_510默认参数 Lora LoraWAN教程 一、LoRaWAN简介 LoraWAN是一种基于LoRa远距离通信技术配套设计的一套通讯协议和系统架构。LoRaWAN网络通…

Java实现拼图游戏

1、了解拼图游戏基本功能&#xff1a; 拼图游戏内容由若干小图像块组成的&#xff0c;通过鼠标点击图像块上下左右移动&#xff0c;完成图像的拼凑。 2、拼图游戏交互界面设计与开发&#xff1a; 通过创建窗体类、菜单、中间面板和左右面板完成设计拼图的交互界面 &#xff…

外贸自建站服务器怎么选?网站搭建的工具?

外贸自建站服务器用哪个好&#xff1f;如何选海洋建站的服务器&#xff1f; 外贸自建站是企业拓展海外市场的重要手段之一。而在这个过程中&#xff0c;选择一个适合的服务器对于网站的稳定运行和优化至关重要。海洋建站将为您介绍如何选择适合的外贸自建站服务器。 外贸自建…

CSDN如何完整转载别人的文章并做自己的笔记

1、这篇文章介绍主体的转载&#xff08;粘贴&#xff09;方法&#xff1a; 转载&#xff1a;CSDN快速转载文章方法&#xff08;简单&#xff09;_csdn转载_biggolden1的博客-CSDN博客 2、这篇文章解决&#xff0c;对于含有代码块的文章粘贴后&#xff0c;出现的额外行号块问题…

【STM32外设系列】GPS定位模块(ATGM336H)

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、GPS模块简介二、使用方法2.1 引脚介绍2.2 数据帧介绍2.3 关于不同的启动方式 三、前置知识3.1 strstr函数3.2…

DevSecOps 的未来

采用 可以做的事情还有很多。您编码和构建的内容是您看到嵌入 CI/CD 管道的大部分进展的地方。随着世界在不同的云环境中变得更加由 API 驱动&#xff0c;我们将考虑如何将安全角度嵌入到所有这些事物中&#xff0c;无论平台如何构建。这是一个涉及人员的工作流程。您做得越多&…

基于H1ve一分钟搭好CTF靶场

写在前面 ◉ ‿ ◉ 上一篇文章给大家详细介绍了基于H1ve搭建CTF靶场&#xff0c;以及过程中可能遇到的报错及解决方法&#xff0c;那么这篇文章&#xff0c;我总结了一下&#xff0c;将不会遇到报错的方法给到大家&#xff0c;但是前提是你的服务器最好是一个全新的哦~~~ 我…