面试-Dubbo常见问题

这篇具有很好参考价值的文章主要介绍了面试-Dubbo常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面试-Dubbo 常见问题

1. 什么是Dubbo?

Dubbo 是一个RPC框架,包含注册中心,服务提供方,服务消费方,控制台,监控中心。

2. Dubbo启动时依赖服务不可用,会怎么样?

Dubbo 启动时会从注册中心拉取消费者需要的提供方信息,如果依赖的服务提供方不可用,Dubbo消费方会启动失败,并且不停的向注册中心请求提供方信息,抛出异常找不到对应的提供方。可以通过check="false"关闭检查,只有在调用时才检查是否有提供方。

3. Dubbo 线程模型

Dubbo 提供了以下几种线程模型

all: 所有的请求一律进工作线程池(默认)
direct: 一律使用IO线程池
message: 除了请求和响应走线程池,其他都是IO线程池(推荐)
execution: 除了请求,其他都走IO线程池
connection: 连接和断连进队列,其他都走工作线程池

4. Dubbo有哪些负载均衡策略?

轮询,随机,最少活跃调用,一致性hash

5. 当同一个服务注册多个时,如何指定到某一个服务?

可以通过绕开注册中心,直接做点对点的请求,指定某一个服务提供方的地址

6. Dubbo 与SpringCloud 区别?

定位不同: Dubbo 是一个高性能的RPC 框架,SpringCloud 是微服务一站式解决方案
调用方式: Dubbo 是采用Dubbo 协议,SpringCloud 是采用Http协议
组件差异: SpringCloud 有较好的生态环境,丰富的组件,Dubbo 组件较少,但是灵活性强,可自由拓展。

7. Dubbo的配置纬度有哪些?

Application 应用纬度(如服务名等)
Service 服务纬度 (如超时时间;)
Method 方法纬度
Provider 提供者纬度
Consumer 消费者纬度

8. Dubbo 服务降级

当提供方服务出现异常时,注册中心会向提供方的消费者发送广播,通知消费方服务,消费方更新本地缓存,在执行调用提供方的代码时,就会抛出异常,可以封装统一的RPC返回体,当发生RPC异常时,return null,消费方只需要判断返回的内容是否为空,就不会因为异常导致业务中断。

9.限流方案

单机的熔弹方案
1:限制某一个接口的一段时间内的并发次数,可以在接口请求时,采用切面方式,获取内存中的阈值,并记录次数,如开始时配置了阈值为10 ,一个请求进来后,记录加1,判断当记录值大于阈值时,拒绝请求,否则放行请求,当请求操作完成后再将记录值减1。
2:采用令牌桶的方式,如初始化令牌桶的数量为10,每次请求进入后,都获取1个令牌,令牌桶数量减1,判断令牌桶减1后的数值,小于0,拒绝请求,否则放行请求,再通过外部程序或者线程,每隔一段时间就重置令牌桶的数量。从而达到限流目的。

如果是集群部署的情况下,可以通过分布式限流系统,进行限流,业务系统接收到请求后,统一向分布式限流系统获取一定数量的令牌桶,业务系统拿到令牌桶后,再自己内存中进行限流,当令牌消耗完后,再次向分布式限流系统获取。这样就可以达到限流的目的。

10.熔断及熔断恢复

当请求调用的服务链路较长时,其中某个服务出现异常,导致线程阻塞,引起上游服务甚至整个链路的崩坏,所以要加入熔断机制,设定链路服务之间请求的超时时间,当超过超时时间后,释放线程,返回上游服务RPC超时,当短时间内这样的异常达到一定的比例或者次数后,可以认为这个下游服务出现了异常,这条RPC链路先断开,不在请求,过一段时间后,尝试回复部分请求,当部分请求都成功后,可以继续扩大恢复请求比例,或者全部恢复。文章来源地址https://www.toymoban.com/news/detail-474226.html

到了这里,关于面试-Dubbo常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JVM基础,面试常见问题

    目录 一.运行时数据区域 1.线程独享 (1)栈 (2)程序计数器 2.线程共享 (1)方法区 (2)堆 二.内存如何分配 1.指针碰撞法 2.空闲列表法 3.TLAB 三.对象在内存中的组成 1.对象头 (1)markword (2)指向类型的指针 (3)如果是数组-》数组长度 2.实例数据 3.对齐填充 四.如何访

    2024年01月23日
    浏览(37)
  • 项目经理岗面试常见问题

    一、注意事项   ·电面邀约确认(避免hr刷KPI): 请问贵司招聘的是什么岗位,是新建团队还是原有团队? 这边面试流程是怎样的,是 leader 直接面,还是?   ·面试前铺垫: 如果您对某部分感兴趣,请随时打断我。   ·面试中发挥: 尽量采用 STAR 原则回答,即 情境( Si

    2024年02月05日
    浏览(34)
  • 大数据常见面试问题汇总

    目录 第1章 核心技术 1.1 LinuxShell 1.1.1 Linux常用高级命令 1.1.2 Shell常用工具及写过的脚本 1.1.3 Shell中单引号和双引号区别 1.2 Hadoop 1.2.1 Hadoop常用端口号 1.2.2 HDFS读流程和写流程 1.2.3 HDFS小文件处理 1.2.4 HDFS的NameNode内存 1.2.5 Shuffle及优化 1.2.6 Yarn工作机制 1.2.7 Yarn调度器 1.2.8 HDFS块大

    2024年02月14日
    浏览(76)
  • List常见面试问题

    Java中的List是一种存放有序的、可以重复的数据的集合,它允许重复元素的存在。List中的元素都有对应的一个序列号(索引)记录着元素的位置,因此可以通过这个序列号来访问元素。 ‍ Java中的List有三种实现方式:ArrayList、LinkedList和Vector。其中,ArrayList是基于数组实现的,

    2024年02月09日
    浏览(25)
  • kubernetes常见面试问题详解

    在面试的时候,面试官常常会问一些问题: k8s是什么?有什么用? k8s由哪些组件组成? pod的启动流程? k8s里有哪些控制器? k8s的调度器里有哪些调度算法? pod和pod之间的通信过程? 外面用户访问pod数据流程? 你常用哪些命令? 容器的类型? 3种探针? pod的升级? HPA、V

    2024年02月10日
    浏览(31)
  • docker常见面试问题详解

    在面试的时候,面试官常常会问一些问题: docker是什么,能做什么? docker和虚拟机的区别是什么呢? docker是用什么做隔离的? docke的网络类型?docker数据之间是如何通信的? docker的数据保存问题? 常用的docker命令? docker制作镜像相关? 下面,就让我来详细说明一些这些问

    2024年02月10日
    浏览(31)
  • 机器学习面试中常见问题整理

    机器学习( ML )作为目前一个比较火领域,提供了许多有趣且高薪的工作和机会。 无论你是刚刚踏入机器学习领域的新手,还是已经积累了一定经验的从业者,面试都是检验你技能和知识的重要环节。 本文将梳理一些常见的面试问题,让你在面试中更加自信从容。 想要从事

    2024年03月11日
    浏览(38)
  • 20个 Golang 常见面试问题

    1 Goroutine 在  Golang中的作用是什么? Goroutines 使得 Golang 能够并发执行多线程任务,允许函数在不相互阻塞的情况下同时运行。 2 如何在 Golang 中处理共享资源的并发访问? Golang 提供了同步原语,如互斥锁(mutexes)和通道(channels),用于在并发场景中安全地访问和修改共享

    2024年04月28日
    浏览(24)
  • Flink常见面试问题(附答案)

    ​ Apache Flink是一个开源的流处理和批处理框架,可以实现快速、可靠、可扩展的大数据处理。 ​ ​ Flink是一个全面的流处理和批处理框架,提供了低延迟和高吞吐量的实时数据处理能力,而Hadoop更侧重于离线批处理。 ​ ​ 事件时间是数据实际生成的时间,而处理时间是数

    2024年04月11日
    浏览(28)
  • 面试前端常见项目问题回答参考

    目录 问题一:描述一个你在前端项目中遇到的挑战,并说明你是如何解决。 问题二:如何保证前端项目代码质量和可维护性? 问题三:如何进行跨浏览器测试,确保一致的用户体验? 问题四:请描述你在前端项目中进行性能优化的经验。 问题五:请描述一个你在前端项目

    2024年04月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包