Java面试题(dubbo)
目录
什么是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 框架在初始化和通信过程中使用了多种设计模式,可灵活控制类加载、权限控制等功能
工厂模式
装饰器模式
观察者模式
动态代理模式
相关文章:
Java面试题(dubbo)
目录 什么是dubbo?为什么要用? dubbo的使用场景和核心功能? dubbo核心组件 dubbo服务注册与发现的流程 dubbo与spring的关系 dubbo与springCloud的区别 dubbo有哪些注册中心? dubbo使用的什么通讯框架? dubbo…...
JVM源码剖析之Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded异常
写在前面: 版本信息: jdk版本:jdk8u40 垃圾回收器:ParallelScavenge new/old最近在群里看到有一位老哥拿着异常信息到处问,而发生的就是java.lang.OutOfMemoryError: GC overhead limit exceeded异常,恰好…...
使用PDF文件入侵任何操作系统
提示:我们8月28号开学,所以我得快点更新了,不能拖了😥 文章目录 前言一、打开终端总结 前言 PDF文件被广泛应用于共享信息,电子邮件,网站或文档或存储系统的真实链接 它可以用于恶意软件的载体。 不要问我什么意思&am…...
强训第32
选择 D B A A 发送TCP意思应该是已经建立了连接,会超时重传。在未建立连接的时候,会放弃该链接 C A 80端口是http A 交换机攻击主要有五种:VLAN跳跃攻击 生成树攻击 MAC表洪水攻击 ARP攻击 VTP攻击 B A 2^(32-26)2^(32-27)2^(32-27)128 减去…...
vue3 setup+Taro3 调用原生小程序自定义年月日时分多列选择器,NutUI改造
vue3 setupTaro3 调用原生小程序自定义年月日时分多列选择器,NutUI改造 NutUI 有日期时间选择器,但是滑动效果太差,卡顿明显。换成 原生小程序 很顺畅 上代码: <template><view><pickermode"multiSelector&…...
git命令使用
君子拙于不知己,而信于知己。——司马迁 清屏:clear 查看当前面板的路径:pwd 查看当前面板的文件:ls 创建文件夹:mkdir 文件夹名 创建文件:touch 文件名 删除文件夹:rm -rf 文件夹名 删除文件:r…...
每日记--前端解决方案--el-select下拉样式-el-option内容过长-鼠标悬停到文字不修改光标样式-设置透明
文章目录 el-select下拉样式el-select中el-option内容过长解决办法鼠标悬停到文字不修改光标样式设置透明 el-select下拉样式 element-ui自带样式设置popper-class el-select中el-option内容过长解决办法 问题:像这样选项太长了,不好看 解决…...
Windows系统Git安装教程(详细Git安装过程)
获取Git安装程序 到Git官网下载,网站地址:https://git-scm.com/downloads,如下图: 因为我们是用Windows系统上的浏览器访问的,Git官网自动之别到了我使用的操作系统,所以右侧直接显示下载使用Windows系统的…...
前后端分离------后端创建笔记(11)用户删除
B站视频:30-用户删除&结束语_哔哩哔哩_bilibili 1、现在我们要做一个删除的功能 1.1 首先做一个删除的功能接口,第一步先来到后端,做一个删除的接口 2、删除我们用Delete请求 3、方法名我给他改一下 3.1这里给他调一下删除方法…...
24、springboot的自动配置01--类条件注解@ConditionalOnClass、bean条件注解@ConditionalOnBean
springboot的自动配置 ★ 自动配置 Spring Boot的自动配置通常可根据依赖库自动触发——当Spring Boot检测到项目中包含某些框架的JAR包时,Spring Boot就会触发自动配置。其实通过EnableAutoConfiguration注解来启动▲ 其实你用到SpringBootApplication࿰…...
婚恋交友h5多端小程序开源版开发
婚恋交友h5多端小程序开源版开发 以下是婚恋交友H5多端小程序的功能列表: 用户注册和登录:用户可以通过手机号码或第三方账号注册和登录。个人信息填写:用户可以填写个人基本信息,包括姓名、性别、年龄、身高、体重、学历、职业等…...
uniapp案例30余种实战项目
uniapp案例30余种实战项目 mpvue框架仿滴滴出行didi-masteruni-app自定义导航栏title-customvue-mpvue-ChatRobot聊天机器人vue-mpvue-ChatRobot-master一款播课类小程序, 基于 mpvue 构建mp-podcast-mpvue-mastermpVue高仿美团小程序教程mpvue-meituan-masteruni-app 二维码生…...
回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测
回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测 目录 回归预测 | MATLAB实现GRNN广义回归神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现GRNN广义回归神经网络多输入多输出预测,输入10个特征&#x…...
从零开始学习VBA(一)
前置配置设置 首先配置开发设置(不同版本的配置方法会有差异,可根据自己使用的EXCEL版本到网络上找对应的方法,比如直接搜索Excel2010 开发工具) 以下为excel2016配置方法: 操作路径:文件-选项-自定义功…...
Kotlin Executors线程池newSingleThreadExecutor单线程
Kotlin Executors线程池newSingleThreadExecutor单线程 import java.util.concurrent.Executorsfun main() {val mExecutorService Executors.newSingleThreadExecutor()for (i in 1..5) {mExecutorService.execute {println("seq-$i tid:${Thread.currentThread().threa…...
ZooKeeper介绍
ZooKeeper是一个开放源代码的分布式协调服务。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 ZooKeeper是一个典型的分布式数据一致性的解决方案࿰…...
首起针对国内金融企业的开源组件投毒攻击事件
简述 2023年8月9日,墨菲监控到用户名为 snugglejack_org (邮件地址:SnuggleBearrxxhotmail.com)的用户发布到 NPM 仓库中的 ws-paso-jssdk 组件包具有发向 https://ql.rustdesk[.]net 的可疑流量,经过确认该组件包携带远控脚本&a…...
源于传承,擎领未来,新架构、新工艺下的“换心工程”——金融电子化访中电金信副总经理、研究院院长况文川
当前,商业银行的经营环境正在发生着深刻而复杂的变化,在深化改革主旋律的指引下,数字化转型已成为我国商业银行普遍认同、广泛采用的战略性举措。核心系统作为承载银行业务的关键支柱系统,一直是各银行在金融科技建设中重点关注和…...
pytest数据驱动(最简单)
目录 第一种:通过yaml文件获取数据(一维列表) 第二种:通过yaml文件获取数据(二维列表) 第三种:通过yaml文件获取数据(pytest.fixture) 资料获取方法 第一种ÿ…...
分布式 - 服务器Nginx:一小时入门系列之代理缓冲与缓存
官方文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html 1. 代理缓冲 proxy_buffer 代理缓冲用于临时存储从后端服务器返回的响应数据。通过使用代理缓冲,Nginx可以在接收完整的响应后再将其发送给客户端,从而提高性能和效率…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...
