Dubbo面试题(三)

news2025/1/11 16:54:33

文章目录

  • 前言
  • 一、Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
  • 二、Dubbo和Spring的关系
  • 三、Dubbo 使用的是什么通信框架?
  • 四、Dubbo 集群提供了哪些负载均衡策略?
  • 五、Dubbo 的集群容错方案有哪些?
  • 六、Dubbo 的默认集群容错方案?
  • 七、Dubbo 支持哪些序列化方式?
  • 八、Dubbo 超时时间怎样设置?
  • 九、服务调用超时问题怎么解决?
  • 十、Dubbo 在安全机制方面是如何解决?
  • 十一、Dubbo 和 Dubbox 之间的区别?
  • 十二、Dubbo 和 Spring Cloud 的关系?
  • 十三、Dubbo和Spring cloud的区别?
  • 总结


前言

  1. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
  2. Dubbo和Spring的关系
  3. Dubbo 使用的是什么通信框架?
  4. Dubbo 集群提供了哪些负载均衡策略?
  5. Dubbo 的集群容错方案有哪些?
  6. Dubbo 的默认集群容错方案?
  7. Dubbo 支持哪些序列化方式?
  8. Dubbo 超时时间怎样设置?
  9. 服务调用超时问题怎么解决?
  10. Dubbo 在安全机制方面是如何解决?
  11. Dubbo 和 Dubbox 之间的区别?
  12. Dubbo 和 Spring Cloud 的关系?
  13. Dubbo和Spring cloud的区别?

一、Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?

可以的,启动 dubbo 时,消费者会从 zookeeper 拉取注册的生产者的地址接口等数据,缓存在本地。
每次调用时,按照本地存储的地址进行调用。


二、Dubbo和Spring的关系

Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于Spring 的 Schema 扩展进行加载。


三、Dubbo 使用的是什么通信框架?

默认使用 NIO Netty 框架


四、Dubbo 集群提供了哪些负载均衡策略?

  1. Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀;
  2. RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题;
  3. LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收更少的请求;
  4. ConstantHash LoadBalance: 一致性 Hash 策略,使相同参数请求
    总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其
    他提供者,避免引起提供者的剧烈变动;
    缺省时为 Random 随机调用

五、Dubbo 的集群容错方案有哪些?

  1. Failover Cluster
  2. 失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。
  3. Failfast Cluster
  4. 快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
  5. Failsafe Cluster
  6. 失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
  7. Failback Cluster
  8. 失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
  9. Forking Cluster
  10. 并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=“2” 来设置最大并行数。
  11. Broadcast Cluster
  12. 广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。

六、Dubbo 的默认集群容错方案?

Failover Cluster


七、Dubbo 支持哪些序列化方式?

默认使用 Hessian 序列化,还有 Duddo、FastJson、Java 自带序列
化。


八、Dubbo 超时时间怎样设置?

Dubbo 超时时间设置有两种方式:

  1. 服务提供者端设置超时时间,在 Dubbo 的用户文档中,推荐如果能在服务端多配置就尽量多配置,因为服务提供者比消费者更清楚自己提供的服务特性。
  2. 服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消费者端为主,即优先级更高。因为服务调用方设置超时时间控制性更灵活。如果消费方超时,服务端线程不会定制,会产生警告。

九、服务调用超时问题怎么解决?

dubbo 在调用服务不成功时,默认是会重试两次的。


十、Dubbo 在安全机制方面是如何解决?

Dubbo 通过 Token 令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo 还提供服务黑白名单,来控制服务所允许的调用方。


十一、Dubbo 和 Dubbox 之间的区别?

dubbox 基于 dubbo 上做了一些扩展,如加了服务可 restful 调用,更新了开源组件等。


十二、Dubbo 和 Spring Cloud 的关系?

Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了 Spirng、Spirng Boot 的优势之上,两个框架在开始目标就不一致,Dubbo定位服务治理、Spirng Cloud 是一个生态。


十三、Dubbo和Spring cloud的区别?

在这里插入图片描述
最大的区别:Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。
而 SpringCloud 是基于 Http 协议+Rest 接口调用远程过程的通信,相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖。


总结

  1. Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
  2. Dubbo和Spring的关系
  3. Dubbo 使用的是什么通信框架?
  4. Dubbo 集群提供了哪些负载均衡策略?
  5. Dubbo 的集群容错方案有哪些?
  6. Dubbo 的默认集群容错方案?
  7. Dubbo 支持哪些序列化方式?
  8. Dubbo 超时时间怎样设置?
  9. 服务调用超时问题怎么解决?
  10. Dubbo 在安全机制方面是如何解决?
  11. Dubbo 和 Dubbox 之间的区别?
  12. Dubbo 和 Spring Cloud 的关系?
  13. Dubbo和Spring cloud的区别?

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

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

相关文章

33.CSS发光按钮的悬停效果

特效 源码 indexhtml <!DOCTYPE html> <html> <head><title>CSS Modern Button</title><link rel="stylesheet" type="text/css" href="style.css"> </head> <body><a href="#"…

【数据结构练习】链表面试题集锦二

目录 前言&#xff1a; 1.链表分割 2.相交链表 3.环形链表 4.环形链表 II 前言&#xff1a; 数据结构想要学的好&#xff0c;刷题少不了&#xff0c;我们不仅要多刷题&#xff0c;还要刷好题&#xff01;为此我开启了一个必做好题锦集的系列&#xff0c;每篇大约5题左右。此…

大数据Flink(八十五):Window TVF 支持多维数据分析

文章目录 Window TVF 支持多维数据分析 一、Grouping Sets 二、​​​​​​​Rollup

学习记忆——宫殿篇——记忆宫殿——记忆桩——风景

河边街道窗框空间房顶楼房水塔山顶塔桥舟桥楼观景台 车顶架碧水池&#xff08;喷泉&#xff09;塔腰楼顶房檐碑石狮箱车叉牌摩托灯

Qt5开发及实例V2.0-第十二章-Qt多线程

Qt5开发及实例V2.0-第十二章-Qt多线程 第12章 Qt 5多线程12.1 多线程及简单实例12.2 多线程控制12.2.1 互斥量12.2.2 信号量12.2.3 线程等待与唤醒 12.3 多线程应用12.3.1 【实例】&#xff1a;服务器编程12.3.2 【实例】&#xff1a;客户端编程 本章相关例程源码下载1.Qt5开发…

Qt5开发及实例V2.0-第十三章-Qt数据库

Qt5开发及实例V2.0-第十三章-Qt数据库 第13章 Qt 5数据库13.1 数据库基本概念13.2 常用SQL命令13.2.1 数据查询13.2.2 数据操作 13.3 Qt操作数据库及实例13.3.1 Qt操作SQLite数据库13.3.2 Qt操作主/从视图及XML 本章相关例程源码下载1.Qt5开发及实例_CH1301.rar 下载2.Qt5开发及…

GLTF编辑器:在线模型材质编辑工具

GLTF 编辑器 是一个功能强大、易于使用的在线3D模型编辑和查看工具&#xff0c;它支持多种格式的3D模型导入并将模型导出为GLB格式&#xff0c;除了可以对3D模型进行基本属性的修改之外&#xff0c;还支持对模型原点重置以及模型材质纹理修改。对于3D开发者和设计师来说&#x…

基于FPGA的图像白平衡算法实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

数据治理-EDRM电子取证

EDRM是电子取证标准和指南的组织,该框架提供了一种电子取证的方法,对于涉及确定相关内部数据的存储方式和位置、适用什么保留策略、哪些数据不可访问以及哪些工具可用于协助识别流程的人员来说,这种方法非常方便。 EDRM模型假定数据或信息治理已到位。该模型包括8个…

20230918使用ffmpeg将mka的音频转为AAC编码以便PR2023来识别

20230918使用ffmpeg将mka的音频转为AAC编码以便PR2023来识别 2023/9/18 20:58 ffmpeg -i 1.mka -acodec aac 1.mp4 ffmpeg -i 1.mka -vn -c:a aac 2.aac ffmpeg -i 1.mka -vn -c:a aac 2.MP4 ffmpeg mka 转 aacmp4 https://avmedia.0voice.com/?id42526 用ffmpeg将mka格式转化…

flink集群与资源@k8s源码分析-flink kubeclient

flink kubeclient是面向flink应用的fabric8 kubeclient的封装,本文分析flink如何封装kubeclient,核心组件是装饰器,资源和ServiceType,下面通过分析业务创建作业管理器组件(createJobManagerComponent)了解flink kubeclient 1 场景 2 新建作业管理器组件 1. KubernetesJob…

【Java 基础篇】Java同步方法解决数据安全

多线程编程是现代应用程序开发中的常见需求&#xff0c;它可以提高程序的性能和响应能力。然而&#xff0c;多线程编程也带来了一个严重的问题&#xff1a;数据安全。在多线程环境下&#xff0c;多个线程同时访问和修改共享的数据可能导致数据不一致或损坏。为了解决这个问题&a…

一次ES检索的性能优化经验记录

优化功能: 统一检索能力&#xff0c;为各服务所调用。 该接口并发压力大&#xff0c;压测效果不理想。 初步2k线程两台压测机预发环境压测结果两pod下为400qps左右&#xff0c;单pod 平均qps200&#xff0c;响应时间在五分钟之后达到了峰值&#xff0c;平响达到几十秒开外。 压…

万里牛与金蝶云星空对接集成查询调拨单连通调拨单新增(万里牛调拨单-金蝶【直接调拨单】)

万里牛与金蝶云星空对接集成查询调拨单连通调拨单新增(万里牛调拨单-金蝶【直接调拨单】) 源系统:万里牛 万里牛是杭州湖畔网络技术有限公司旗下SaaS软件品牌&#xff0c;主要针对电商、外贸、实体门店等业务群体&#xff0c;帮助企业快速布局新零售&#xff0c;提升订单处理效…

Appium - python

一、appium的介绍 Appium是一款开源的自动化测试工具&#xff0c;其支持iOS和安卓平台上的原生的&#xff0c;基于移动浏览器的&#xff0c;混合 的应用。Appium在不同平台中使用了标准的自动化APIs&#xff0c;所以在跨平台时&#xff0c;不需要重新编译或者修改 自己的应用。…

数学建模——统计回归模型

一、基本知识 1、基本统计量 总体&#xff1a;研究对象的某个感兴趣的指标。样本&#xff1a;从总体中随机抽取的独立个体X1,X2,…,Xn&#xff0c;一般称(X1,…,Xn)为一个样本&#xff0c;可以看成一个n维随机向量&#xff0c;它的每一取组值(x1,…,xn)称为样本的观测值。统计…

说说hashCode() 和 equals() 之间的关系?

每天一道面试题&#xff0c;陪你突击金九银十&#xff01; 上一篇关于介绍Object类下的几种方法时面试题时&#xff0c;提到equals()和hashCode()方法可能引出关于“hashCode() 和 equals() 之间的关系&#xff1f;”的面试题&#xff0c;本篇来解析一下这道基础面试题。 先祭一…

四川玖璨电子商务有限公司培训可靠吗?

四川玖璨电子商务有限公司是一家在抖音平台上进行培训的电商公司。如今&#xff0c;随着抖音带货的火热&#xff0c;越来越多的人加入到这个行业中。然而&#xff0c;对于消费者来说&#xff0c;选择一个可靠的抖音培训公司并不容易。 在这个领域中&#xff0c;四川玖璨电子商务…

微软(TTS)文本转语音服务API实现

此博客实现与java实现微软文本转语音&#xff08;TTS&#xff09;经验总结_java tts_${简简单单}的博客-CSDN博客之上&#xff0c;首先感谢博客源码的提供&#xff0c;本人在上面添加了一些详细的注释&#xff0c;方便大家跟好的理解和使用&#xff0c;毕竟我已经用原文调试了一…

openEuler 亮相全球顶级开源盛会 OSSUMMIT 2023,持续推动智能化未来的实现

2023年9月19日&#xff0c;全球顶级开源峰会 OSSUMMIT EU 2023 在西班牙-毕尔巴鄂正式开场。openEuler 作为钻石级别赞助参会。这是 openEuler 继去年正式亮相后的第二次全面参加该峰会。 本次会议&#xff0c;openEuler带来Keynote及多场分论坛演讲&#xff0c;涵盖Linux Kern…