小工具      在线工具  汉语词典  css  js  c++  java

Dubbo 常见问题汇总

Java 额外说明

收录于:97天前

1. 如果注册中心集群宕机了,发布者和订阅者还能通信吗?​

是的,当dubbo启动时,消费者会从zk中拉取注册的生产者的地址接口和其他数据并缓存在本地。每次调用时都是根据本地存储的地址进行调用。但是,如果提供了服务,就会宕机,消费者也不会知道。那么集群中,如果任何一个失败,默认会自动切换到另一个。集群中的服务提供者是无状态的,如果任何一个服务提供者宕机,使用都不会受到影响。如果所有服务提供者都宕机了,服务消费者将无法使用它们。根据集群容错规则,它们会重新连接并等待服务器恢复。

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

在开发和测试环境中,常常需要绕过注册中心,只测试指定的服务提供商。在这种情况下,可能需要点对点直接连接。点对点直连方式将以服务接口为单位,忽略注册中心的提供商列表。

服务注册中心动态注册和发现服务,使服务的位置透明,通过获取消费者侧的服务提供者地址列表,实现软负载均衡和故障切换。注册中心将服务提供者地址列表返回给消费者,如果有变更,注册中心会基于长连接将变更数据推送给消费者。​

服务消费者根据软负载均衡算法从提供者地址列表中选择调用的提供者。如果呼叫失败,它会选择另一个提供商进行呼叫。注册中心负责服务地址的注册和查找,相当于目录服务。服务提供者和消费者仅在启动时与注册中心进行交互。注册中心不转发请求。服务消费者从注册中心获取服务提供者地址列表,根据负载算法直接调用提供者、注册中心、服务提供者、服务消费者都是长连接,除了监控中心。注册中心通过长连接感知服务提供者的存在。如果服务提供商宕机了,注册中心会立即推送事件通知消费者。注册中心和监控中心全部宕机,不影响运行的提供者和消费者。消费者在本地缓存提供者列表。注册中心和监控中心都是可选的。服务消费 用户可以直接连接到服务提供商。

3、Dubbo如何解决安全机制?

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

4、默认使用什么通信框架?还有其他选择吗?

默认也推荐netty框架和mina。

5. 服务调用是否阻塞?

默认是阻塞的,可以异步调用。如果没有返回值的话可以这样做。

6、一般使用什么注册中心?还有其他选择吗?

推荐使用zookeeper注册中心,不推荐redis。

7.默认使用什么序列化框架,你还知道什么?

默认的dubbo协议默认使用Hessian序列化,还有FastJson和Java自带的序列化。

8. 服务商失败踢出的原理是什么?

服务故障踢出基于zookeeper的临时节点原理和心跳机制。如果在该间隔内没有维持心跳,则认为失败。

9、为什么上线后老版本不受影响?

采用多版本开发,老版本不受影响。

10、如何解决服务调用链过长的问题?

结合zipkin可以实现分布式服务追踪。

11. 核心配置/标签是什么?

dubbo:service
dubbo:reference
dubbo:protocol
dubbo:registry
dubbo:application
dubbo:provider
dubbo:consumer
dubbo:method
 

12、dubbo推荐使用什么协议?

默认使用dubbo协议。

13. 如果我对同一个服务有多个注册,我可以直接连接到某个服务吗?

您可以直接连接并修改配置,也可以通过telnet直接连接到服务。

14.画出服务注册和发现的流程图

百度

15、Dubbo集群如何实现容错?

建议使用Failover,读操作失败自动切换,默认重试其他服务器两次。建议使用 Failfast 使写操作快速失败。如果调用失败,会立即报错。

16、您在使用过程中遇到了哪些问题?

自己玩

17.dubbo和dubbox有什么区别?

Dubbox是在dubbo的基础上,当当做了一些扩展,比如添加可以称为restful的服务、更新开源组件等。

18.你还了解其他分布式框架吗?

其他还有spring的spring cloud、facebook的thrift、twitter的finagle等。

19. 令牌验证

防止消费者绕过注册中心访问提供者,并在注册中心控制权限来决定是否向消费者发放token。注册中心可以灵活改变授权方式,无需修改或升级提供商。

20、Dubbo配置路由只允许某个消费者访问。

服务器启动后,首先调用某个消费者的服务来验证服务是否正常,然后开放给其他消费者访问。在验证阶段,其他消费者无法访问。

21、Dubbo的原理,数据如何流动,如何实现集群、负载均衡、服务注册和发现。重试转发并快速失败的策略是什么?

Dubbo[]是一个分布式服务框架,致力于提供高性能、透明的RPC远程服务调用解决方案和SOA服务治理解决方案。

Cluster实现集群

在集群负载均衡时,Dubbo提供了多种均衡策略,默认是随机调用。​

Random LoadBalance:随机,根据权重比例设置随机概率。​

RoundRobin LoadBalance:轮询,根据约定后的权重比例设置轮询比例。​

LeastActive LoadBalance:最小活跃调用数,活跃数相同的随机数,活跃数是指调用前后计数的差值。让慢速提供者接收更少的请求,因为对于慢速提供者来说,调用前后的计数差异会更大。​

ConsolidatedHash LoadBalance:一致性Hash,相同参数的请求总是发送到同一个提供者。当某个提供者出现故障时,原本发送给该提供者的请求会基于虚拟节点分发给其他提供者,不会造成剧烈的变化。​

快速失败,只调用一次,失败立即报错。

22. RPC请求的流程是怎样的。

1)服务消费者(客户端)通过本地调用的方式调用服务;

2)客户端stub收到调用后,负责将方法、参数等组装成可以通过网络传输的消息体;

3)客户端存根找到服务地址并将消息发送到服务器;

4) 服务器存根收到消息后对其进行解码;

5) 服务器存根根据解码结果调用本地服务;

6)执行本地服务,并将结果返回到服务器存根;

7) 服务器存根将返回结果打包成消息发送给消费者;

8) 客户端stub接收消息并解码;

9) 服务消费者得到最终结果。

23、异步模式的目的和意义。

异步模式适用于多核服务器、并发严重的场景。

可以提高服务吞吐量,并且不易受到影响。并发策略可用于缩短响应时间。

缓存数据过期后如何设计更新。​

失效:应用程序首先从缓存中检索数据。如果没有得到,它会从数据库中检索数据。成功后,将其放入缓存中。​

Hit:应用程序从缓存中获取数据,获取后返回。​

更新:先将数据存入数据库,成功后使缓存失效。

24.什么是rcp框架?

https://www.cnblogs.com/ChrisMurphy/p/6550184.html

25. 序列化方法和函数

http://blog.csdn.net/u012554102/article/details/51902697

26.Dubbo底层协议实现

https://www.cnblogs.com/1201x/p/6482638.html

27.如何设置dubbo注册中心

http://blog.csdn.net/u011659172/article/details/51491518

28.了解dubbo负载均衡

https://www.cnblogs.com/qingfengbuluo/p/5527930.html

29.dubbo容错机制

https://www.2cto.com/kf/201612/572681.html

30、服务调用超时的实现原理

https://www.cnblogs.com/ASPNET2008/p/7292472.html

31.服务注册和发现过程

http://doc.okbase.net/661116/archive/241946.html

转自:https://blog.csdn.net/qq_34988624/article/details/86495526

. . .

相关推荐

额外说明

【算法很美】多维数组和字符串打卡(第3天)

文章目录 子矩阵的最大累加和 整体代码 矩阵运算-乘法 整体代码 检测字符串是否有重复字符 整体代码 反转字符串 整体代码 变形词 整体代码 替换字符串中的空格 整体代码 子矩阵的最大累加和 整体代码 package 每日算法学习打卡.算法打卡.七月份.

额外说明

JDBC封装

package com.vector.dao; import com.vector.util.JDBCUtils; import java.lang.reflect.Field; import java.sql.*; import java.util

额外说明

C语言:文件操作

文件操作 1. 为什么使用文件 2.文件的打开和关闭 2.1文件指针 2..2 文件的打开和关闭 3.文件的顺序读写 3.1 对比一组函数 4.文件的随机读写 4.1 fseek 4.2 ftell 4.3 rewind 5. 文本文件和二进制文件 6.

额外说明

【Java 数据结构 & 算法】宁可累死自己, 也要卷死别人 17 KMP 算法

【Java 数据结构 & 算法】⚠️宁可累死自己, 也要卷死别人 17⚠️ KMP 算法 概述 KMP 算法 部分匹配表 KMP 算法实现 概述 从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章. KMP 算法 KMP (Knuth

额外说明

(一)Flask简介和快速使用

关于Python三大Web框架浅谈一嘴: Django、Flask和Tornado三个框架都是Python Web应用的开发框架,虽然它们都能够开发Web应用,但在使用方式、适用领域和处理方式上还是有很多不同的。 Django——专栏地址:《Django

额外说明

【Unity3D读取数据】(一)Txt文档操作(创建、读取、写入、修改)

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在程序开发中,经常会遇到

额外说明

C语言第十课----------------扫雷----------数组的经典练手题

作者前言 -        ✨✨✨✨✨✨--------    -      作者介绍:                              --        - -------              -           -作者id:老秦

额外说明

【Java 进阶篇】Java登录案例详解

登录是Web应用程序中常见的功能,它允许用户提供凭证(通常是用户名和密码)以验证其身份。本文将详细介绍如何使用Java创建一个简单的登录功能,并解释登录的工作原理。我们将覆盖以下内容: 登录的基本概念 创建一个简单的登录表单 处理登录请求 实现用户验证

额外说明

《天天数学》连载19:一月十九日

格言作者:希尔伯特热忱地支持康托的集合论与无限数。他在数学上的领导地位充分体现于:1900年,在巴黎举行的第2届国际数学家大会上,38岁的大卫·希尔伯特作了题为《数学问题》的著名讲演,提出了新世纪所面临的23个问题。这23个问题涉及了现代数学的大部分重要

额外说明

【抓包工具】配置:Fiddler 设置 HTTPS 勾选了 Decrypt HTTPS traffic 的报错解决

目录 一、报错情况 (1)报错情况 ① (2)报错情况 ② 二、解决方法 一、报错情况 (1)报错情况 ① 勾选了 Decrypt HTTPS traffic 后,fidder 停止工作的问题。 1. 报错情况 HTTPS 模块中,手动勾选了 Decry

ads via 小工具