Dubbo中的一些常见问题?

2023-10-27

关于dubbo是用的什么协议?

在使用dubbo的时候会配置<dubbo:protocolname="dubbo"port="20880"/>所以再回答面试官的时候就随口说的是dubbo协议,其实面试官问的此协议非彼协议,而是问的是http协议还是Tcp协议,因为dubbo的核心就是用的单一长连接进行异步通信。

      那问题来了为什么要用dubbo进行数据传输?

      一般服务端服务器比较少,消费端有可能会有很多项目或者工程会调用dubbo的接口,而且数据量传输较小且并发量比较高的情况下用dubbo效率会很高。

 Tcp协议就是所谓的长连接

 HTTP协议呢就是所谓的短连接,经典的三次握手。


长连接的好处:

减少来回握手的频率,当操作频繁,点对点的通讯时,可以同时发送多个数据包,以不至于服务者被消费者压死



Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么? 

可以

1.启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用。
2.注册中心对等集群,任意一台宕掉后,会自动切换到另一台 。
3.注册中心全部宕掉,服务提供者和消费者仍可以通过本地缓存通讯 。
4.服务提供者无状态,任一台 宕机后,不影响使用 。
5.服务提供者全部宕机,服务消费者会无法使用,并无限次重连等待服务者恢复 。


2、dubbo连接注册中心和直连的区别 ?
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连, 点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,
服务注册中心,动态的注册和发现服务,使服务的位置透明,并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover, 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 

服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外,注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者,注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表,注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

3、Dubbo在安全机制方面是如何解决的 ?
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dubbo中的一些常见问题? 的相关文章

  • 「从零开始造 RPC 轮子系列」01 我为什么要去造一个轮子?

    目录 好日子 为什么你需要学习造轮子 投资自己 不要成为调包侠 通过造轮子你能学到什么 下一步计划 好日子 宣布一件事情 好日子 12月有个好日子 20211202 从左往右读 接着从右往左读你会发现居然是对称的 这是属于程序员的 浪漫 身
  • dubbo validation 参数验证 参数校验 @NotNull 自定义响应

    使用dubbo 框架 使用 validation 进行参数校验 首先创建类 import com fasterxml jackson annotation JsonProperty import lombok Getter import l
  • Dubbo分布式日志追踪

    很多互联网公司都用的dubbo分布式框架进行微服务的开发 一个大系统往往会被拆分成很多不同的子系统 并且子系统还会部署多台机器 当其中一个系统出问题了 查看日志十分麻烦 所以我们需要一个固定的流程ID和机器ip地址等来把所有的日志穿起来 当
  • u盘刷新系统

    1 百度u盘制作将u盘进行刷成系统盘 点击添加系统 确认 关掉即可 到这里就制作完成了 u盘里也有系统了 下一步就是进入电脑的 bios 一般是f8 或者f2 或者esc 看你是什么电脑自己手机百度一下 当进入u盘系统时候会发现一键刷机工具
  • 二、Dubbo+SpringBoot+zookeerper整合(注解方式)

    Git地址 https github com boorZ demo dubbo git 注意 Git地址上的项目与本文章有差同 请参照文章与Git Git地址 https github com boorZ demo dubbo xml 注意
  • 解决dubbo注册zookepper服务IP乱入问题的三种方式

    最近做一个项目引入了dubbo zookepper的分布式服务治理框架 在应用的发布的时候出现一个怪问题 zookepper服务是起在开发服务器192 168 23 180上 本机起应用服务提供者注册到192 168 23 180上的dub
  • Dubbo高级应用-服务治理

    目录 1 dubbo admin 2 7 x版本安装部署 1 1 下载源码 1 2 部署访问 2 路由规则 2 1 Dubbo API配置 2 2 管理控制台配置 3 规则动态配置 3 1 应用粒度 3 2 服务粒度 4 服务降级 5 集群
  • SpringBoot+Dubbo分布式SOA项目骨架搭建(二)

    SpringBoot Dubbo分布式SOA项目骨架搭建 项目介绍 本项目是来自于上一篇文章http blog csdn net songxinjianqwe article details 77478385 中的服务化拆分这个部分 经过一
  • tcc分布式事务源码解析系列(一)之项目结构

    happylifeplat tcc 是什么 有什么功能 这是碧桂园旺生活解决分布式事务的TCC开源方案 github地址 支持dubbo springcloud等rpc框架进行分布式事务 本地事务存储 支持redis mogondb zoo
  • Dubbo源码解析:服务暴露与发现

    dubbo源码解析 服务暴露与发现 概述 dubbo是一个简单易用的RPC框架 通过简单的提供者 消费者配置就能完成无感的网络调用 那么在dubbo中是如何将提供者的服务暴露出去 消费者又是如何获取到提供者相关信息的呢 这就是本章我们要讨论
  • SpringCloud与Dubbo的比较

    目录 Dubbo 一 dubbo简介 二 dubbo组织架构图 三 dubbo的优势 SpringCloud 一 SpringCloud简介 二 SpringCloud组织架构 三 SpringCloud特点 四 Dubbo与SpringC
  • Thrift、Dubbo、Spring Cloud 和 gRPC

    何为RPC RPC Remote Procedure Call 远程过程调用 是一种进程间通信方式 是一种技术的思想 而不是规范 它允许程序调用另一个地址空间 通常是共享网络的另一台机器上 的过程或函数 而不用程序员显式编码这个远程调用的细
  • Nacos、ZooKeeper和Dubbo的区别

    Nacos ZooKeeper和Dubbo是三个不同的分布式系统组件 它们之间有以下几点区别 功能定位 Nacos主要提供服务发现 配置管理和服务治理等功能 而ZooKeeper主要是分布式协调服务 提供了分布式锁 分布式队列等原语 Dub
  • dubbo配置提供者和消费者

    1 找到对应的文件 提供者 消费者 参考dubbo官网 http dubbo apache org zh cn docs user quick start html
  • Dubbo 默认线程池fixed

    SPI fixed public interface ThreadPool 线程池 param url 线程参数 return 线程池 Adaptive Constants THREADPOOL KEY Executor getExecut
  • Dubbo 支持哪些协议?

    Dubbo 支持多种通信协议 包括但不限于以下几种 Dubbo 协议 Dubbo 框架自带的通信协议 用于服务之间的调用 Hessian协议 轻量级远程调用协议 基于 HTTP 传输 Thrift 协议 跨语言 跨平台的服务接口定义和序列化
  • Dubbo 动态代理策略有哪些?

    Dubbo 是一个高性能 轻量级的 Java RPC 框架 它支持多种动态代理策略 以下是 Dubbo 支持的一些动态代理策略 JDK动态代理 这是 Java 动态代理的基础 通过代理接口生成代理类 当调用远程服务时 Dubbo 会根据接口
  • 说说 Dubbo 与 Spring Cloud 的区别?

    Dubbo 和 Spring Cloud 都是流行的分布式服务框架 但它们在设计和使用上有一些不同之处 以下是它们之间的一些主要区别 开发语言 Dubbo 主要基于 Java 而 Spring Cloud 是基于 Spring Boot 的
  • 说说 Dubbo 与 Spring Cloud 的区别?

    Dubbo 和 Spring Cloud 都是流行的分布式服务框架 但它们在设计和使用上有一些不同之处 以下是它们之间的一些主要区别 开发语言 Dubbo 主要基于 Java 而 Spring Cloud 是基于 Spring Boot 的
  • HttpRunner(20):脚手架工具使用(一键搭建)-httprunner运行方式

    脚手架工具使用 每一个成熟的系统工具 都会有对应的脚手架工具 它可以快速构建项目的必要目录 不必自己一个一个的配置与搭建 只需要执行一些命令即可 httprunner也提供了脚手架工具 使用步骤如下 1 在命令模式下输入hrun start

随机推荐

  • 白话操作系统1.1 - CPU - virtualization - 虚拟

    1 桃子之影分身 three easy pieces操作系统一书中 教授谈起了分桃子的事情 说实际只有一个桃子 但却要分给很多猴子 那么问题来了 如何让每个猴子都能开开心心的分到桃呢 其实就是用一些手段啊 捏造出虚拟的桃子 虚拟的东西嘛 可
  • ECharts的讲解

    目录 什么是数据可视化 ECharts的介绍 ECharts的特点 ECharts的基本使用 操作步骤 通用配置title的相关配置 通用配置tooltip的相关配置 触发类型 trigger 触发时机 triggerOn 格式化 form
  • python 概率分布_Python中的联合概率分布

    要通过numpy中的m矩阵生成 可以将两个适当形状的数组相乘 如果数组x是1的n 而数组y是 则它们的乘积x y将是n 由m 在 下面是一个例子 说明如何用最初是一维的数据来处理这个问题 我使用随机值 如果是概率分布的话 应该对其进行规范化
  • 用Hexo制作自己的静态博客

    博客是一个老东西了 如果我们想写博客的话 有两种选择 第一种是在博客网站上 例如QQ空间 新浪博客 简书等网站上申请账号 然后编写博客 第二种就是自己找服务器搭一个博客 搭建博客也有两种选择 第一种是搭建动态博客 这方面最流行的就是Word
  • C++之五种排序方法总结

    模板函数sort sort是一个模板函数 sort 括号里可以接受两个或三个参数 这里先说一下两个参数的 因为三个参数的还没研究好 哈哈 使用sort 时需要添加头文件
  • 修改mysql的字符集和默认存储引擎

    author skate time 2012 05 18 修改mysql的字符集和默认存储引擎 1 修改mysql的字符集 mysql库现有字符集 mysql gt show variables like character Variabl
  • 多表的 inner join与left join;

    当前情况 目前有三个表 关系如下 1 sc表 有 student id class id 2 student表 有student id student name 3 class表 有class id class name class add
  • vue3+vite+ts项目配置开发环境和生产环境 打包命令配置

    开发环境和生产环境的配置和打包方式有所不同 下面是基于vue3 vite ts项目的开发环境和生产环境配置及打包方式的详细说明 开发环境配置 开发环境的配置主要是为了方便开发者进行调试和测试 以下是开发环境的配置步骤 1 1 安装依赖 首先
  • 51单片机“独立按键”控制静态数码管———显示数字0-9

    51单片机 独立按键 控制静态数码管学习总结 一 按键功能实现总结 独立按键 电路图解析及接线 二 程序编译与控制静态数码管显示1 2 0 9 的效果展示 三 按键程序逻辑设计与程序编译 四 程序烧录与保存 一 按键功能实现总结 独立按键
  • python 绘制两组数据的分布图

    可以使用 Python 中的 Matplotlib 库来绘制两组数据的分布图 下面是一个简单的示例代码 import matplotlib pyplot as plt 假设有两组数据 分别是 x 和 y x 1 2 3 4 5 y 2 4
  • JAVA用线程池模拟查询大批量数据

    JAVA用线程池模拟查询大批量数据 文章目录 JAVA用线程池模拟查询大批量数据 1 前言背景 1 1 线程 1 2 进程与线程的区别总结 1 3 使用多线程的好处 2 多线程的实现 2 1 操作流程 3 测试 1 前言背景 1 1 线程
  • QListWidget右键菜单

    关于QListWidget右菜单的的实现 网上多数资料都没有提到如何使用Qt Creator快速实现 如参考资料 1 2 本文重点介绍此方法 1 槽函数生成 通过Qt Creator的UI设计器将QListWidget控件拖放到主界面中 然
  • 刷题之77. 组合

    题目 给定两个整数 n 和 k 返回范围 1 n 中所有可能的 k 个数的组合 你可以按 任何顺序 返回答案 示例 1 输入 n 4 k 2 输出 2 4 3 4 2 3 1 2 1 3 1 4 来源 力扣 LeetCode 链接 http
  • Pytorch实现Seq2Seq

    前言 Seq2Seq模型用来处理nlp中序列到序列的问题 是一种常见的Encoder Decoder模型架构 基于RNN同时解决了RNN的一些弊端 输入和输入必须是等长的 Seq2Seq的模型架构可以参考Seq2Seq详解 也可以读论文原文
  • MyBatis中的$和#,你知道他们的区别吗?

    转自 MyBatis中的 和 你知道他们的区别吗 下文笔者将讲述MyBatis中的 和 的区别简介说明 如下所示 在MyBatis的xml配置文件中 我们经常看见 和 后面紧跟变量 那么他们有什么区别呢 下文笔者将一一道来 如下所示 1 是
  • C# 爬虫遇到EventStream数据时该怎么获取值

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵权 请告知删除 谢谢 今天调用某个网站的接口时发现数据格式是这种的 第一次遇到 正常的应该是这样的才对 有个 响应 然后响应里面是一些返回过来的数据 而这个就很奇怪 没有 响应
  • 07模板学习之模板类的static数据成员的归属问题

    07模板学习之模板类的static数据成员的归属问题 1 模板类的static数据成员的归属问题分析 从上面的图分析 先看类模板中的static int a 若类模板中声明了static数据 那么该a是属于类模板还是属于具体类呢 假设属于类
  • 菜鸟入门Docker

    菜鸟入门Docker 说明 一 什么是Docker 1 虚拟机和Linux容器 二 Docker用途 三 Docker安装 1 设置仓库 2 安装 Docker Engine Community 3 验证安装成功 四 Docker启动与停止
  • Linux必杀(十八):VI、VIM编辑器

    题记 基本上VI共分为3种模式 分别是一般模式 命令行模式和编辑模式 一 一般模式 以Vi打开一个文件就直接进入一般模式了 在这个模式下 可以使用上下左右按键来移动光标 可以删除字符或删除整行 也可以复制 粘贴文件数据 二 编辑模式 在一般
  • Dubbo中的一些常见问题?

    关于dubbo是用的什么协议 在使用dubbo的时候会配置