Java面试题(dubbo)

news/2024/12/30 22:37:37/

目录

什么是dubbo?为什么要用?

dubbo的使用场景和核心功能?

dubbo核心组件

dubbo服务注册与发现的流程

dubbo与spring的关系

dubbo与springCloud的区别

dubbo有哪些注册中心?

dubbo使用的什么通讯框架?

dubbo如果注册中心宕机,发布者与订阅者之间还能通信吗?

dubbo负载均衡策略

dubbo容错处理方案

dubbo超时设置方式

dubbo支持协议

dubbo服务降级

dubbo启动时支持几种配置方式

dubbo在安全机制方面如何解决

dubbo连接注册中心和直连的区别

dubbo用到了哪些设计模式?


什么是dubbo?为什么要用?

        dubbo是一款高性能、轻量级的开源rpc分布式服务框架,提供了服务自动注册、自动发现等高效服务治理方案,可以和spring无缝集成。

        dubbo为了解决随着服务化进一步发展,服务越来越多、服务之间调用越来越复杂,而诞生的架构体系,使远程方法调用透明化,只需要简单配置就能像调用本地方法一样调用远程方法。

dubbo的使用场景和核心功能?

        1.透明化的远程方法调用

        2.负载均衡与容错

        3.服务自动注册与发现

dubbo核心组件

        1.服务提供者

        2.服务消费者

        3.注册中心

        4.监控中心

        5.容器

dubbo服务注册与发现的流程

        1.容器启动运行服务提供者

        2.提供者启动注册服务

        3.消费者订阅所需服务

        4.注册中心返回提供者地址给消费者

        5.消费者通过负载均衡机制选择提供者

        6.消费者和服务者的调用次数与时间发送到监控中心

dubbo与spring的关系

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

dubbo与springCloud的区别

        1.SpringCloud是采用Http协议做远程调用,接口一般是Rest风格;Dubbo是采用Dubbo协议,格式固定

        2.SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 关注点主要在于服务的调用和治理

        3.SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏

dubbo有哪些注册中心?

        Zookeeper、Redis、Multicast、Simple,推荐使用 Zookeeper 作为注册中心(zookeeper本身是可以负载均衡的 dubbo也可以负载均衡 。但是当结合负载均衡 容灾自动恢复。扩展服务器等等。会让dubbo更健全)

dubbo使用的什么通讯框架?

        默认使用 Netty 作为通讯框架

dubbo如果注册中心宕机,发布者与订阅者之间还能通信吗?

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

dubbo负载均衡策略

常用4种,默认随机策略

        1.随机策略

        2.轮询策略

        3.最少活跃调用策略

        4.一致hash策略

dubbo容错处理方案

        1.失败自动切换,重试其他服务器

        2.失败立即报错

        3.失败直接忽略

        4.失败自动恢复

        5.并行调用多个服务器,只要返回一个即可

        6.广播调用所有服务提供者,任意一台报错即报错

dubbo超时设置方式

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

有两种超时设置方案

        1.提供者端设置(推荐在服务端配置,因为服务提供者比消费者更清楚自己提供的服务特性)

        2.消费者端设置(消费者端设置了超时时间,以消费者端为主,即优先级更高)

dubbo支持协议

推荐使用dubbo协议

dubbo:单一长连接和 NIO 异步通讯,适合大并发小数据量的服务调用,以及消费者远大于提供者

rmi:传输参数和返回参数对象需要实现

serializable:使用阻塞式短连接,传输数据包大小混合,消费者和提供者个数差不多

webService:多个短连接,基于 HTTP 传输,同步传输,适用系统集成和跨语言调用

http:基于http表单提交的远程调用服务

hessian:传入参数较大,提供者大于消费者,提供者压力较大,可传文件

memcache:基于 Memcache实现的 RPC 协议

redis:基于redis实现rpc协议

dubbo服务降级

有两种方式:内置Mock和自定义Mock方法

内置Mock:设置 mock=“return null”或其他

自定义Mock方法:服务接口名+Mock后缀,实现服务接口

dubbo启动时支持几种配置方式

xml、注解、属性、api

dubbo在安全机制方面如何解决

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

dubbo连接注册中心和直连的区别

连接注册中心:通过注册中心来管理和维护服务提供者与服务消费者之间的关系

直连:服务消费者直接与指定的服务提供者建立连接,跳过注册中心的过程

        连接注册中心通过注册中心的管理和调度,提供了服务自动发现、负载均衡、状态管理和监控等丰富的功能;而直连模式通过简化部署和配置、减少网络开销等方面,提供了更高的灵活性和性能

dubbo用到了哪些设计模式?

Dubbo 框架在初始化和通信过程中使用了多种设计模式,可灵活控制类加载、权限控制等功能

        工厂模式

        装饰器模式

        观察者模式

        动态代理模式


http://www.ppmy.cn/news/1034248.html

相关文章

jmeter获取mysql数据

JDBC Connection Configuration Database URL: jdbc:mysql:// 数据库地址 /库名 JDBC Driver class:com.mysql.jdbc.Driver Username:账号 Password:密码 JDBC Request 字段含义 字段含义 Variable Name Bound to Pool 数据库连接池配置…

时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现WOA-CNN-BiLSTM鲸鱼算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计学习总结参考资料 预测效果 基本介绍 时序预测 | MATLAB实现…

SpringBoot中properties、yml、yaml的优先级

原理 配置优先级低的会先加载然后会被配置优先级高的覆盖 验证 创建SpringBoot项目(网址) 在resource目录下创建application.properties、application.yml、application.yaml文件 运行 结论 优先级顺序: properties>yml>yaml

PDB Database - RCSB PDB 数据集 (2023.8) 的多维度信息统计

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132297736 RCSB PDB 数据集是一个收集了蛋白质的三维结构信息的数据库,是世界蛋白质数据库(wwPDB)的成员之一&…

视频汇聚平台EasyCVR安防监控视频汇聚平台的FLV视频流在VLC中无法播放的问题解决方案

众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上,视频监控…

Redis 应用实践:缓存预热与缓存穿透解决方案

Redis 应用实践:缓存预热与缓存穿透解决方案 一、简介1.1 简介1.2 缓存预热 穿透 二、缓存预热2.1 缓存预热基本原理2.2 Redis 缓存预热实现2.2.1 基于数据量预热2.2.2 基于时间预热2.2.3 周期性预热 三、缓存穿透3.1 缓存穿透基本原理3.2 Redis 缓存穿透解决方案3.…

几种不同类型的JOIN的区别

一、不同类型的JOIN操作 INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。 二、区别 INNER JOIN: 只返回两个表之间匹配的行。它基于连接条件从两个表中选择共享相同值的行,并将它们合并为一个结果集。如果某个表中的行没有与另一个表中的行匹配&…

Linux 进程的地址空间

一、进程 进程:是一个正在运行的程序 PCB : 即是进程控制块,是进程存在的唯一标志。用来描述进程的属性信息,如进程的pid。 每一个进程都是通过fork复制而来的。 在执行fork之后,先将PCB复制一份给子进程,复制之前先…