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

Dubbo 常见问题汇总

Java 额外说明

收录于:42天前

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

. . .

相关推荐

额外说明

多个背包问题

Description 给定N种物品和一个容量为C的背包,第i种物品最多有 Mi 件可用,每件的重量是Wi,价值是Vi。问:将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。 Input 输入的第一行为测试样例的个数T,接下来有T个

额外说明

express框架使用express-generator工具

1.全局安装  npm install -g express-generator  2.检测是否安装成功  express -h 3.  快速创建Express应用程序的工具  express -e express-generator  说明:expre

额外说明

生成对抗网络(GAN):在图像生成和修复中的应用

文章目录 什么是生成对抗网络(GAN)? GAN在图像生成中的应用 图像生成 风格迁移 GAN在图像修复中的应用 图像修复 拓展应用领域 总结 -欢迎来到AIGC人工智能专栏~生成对抗网络(GAN):在图像生成和修复中的应用 ☆* o(≧▽≦)o *☆嗨

额外说明

java多线程设计模式之Producer-Consumer模式(一)

     Producer是生产者的意思,指的是生成数据的线程,Consumer则是消费者的意思,指的是使用数据的线程,这里我们要实现的是如何安全的将数据从生产者交给消费者,看似简单但是当两者处于不同的线程时,处理速度差异便会产生问题。对于这个问题,我们

额外说明

Spark基础学习笔记04:搭建Spark伪分布式环境

文章目录 零、本讲学习目标 一、搭建伪分布式Hadoop (一)登录ied虚拟机 (二)配置免密登录 1、在ied虚拟机上生成密钥对 2、将生成的公钥发送到本机 3、验证虚拟机是否能免密登录本机 (三)下载与Spark版本匹配的Hadoop安装包 (四)

额外说明

006 从不同的角度理解数组名的意义——“C”

    一、数组名的意义是什么? 引入 1.数组名的意义:sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小 &数组名。这里的数组名表示整个数组。取出的是整个数组的地址 除此之外所有的数组名都表示首元素的地址 2.strlen函数基

额外说明

qdox ParseException: syntax error 异常处理

前言 最近看了几个开源的生成yapi文档的maven插件,基本的操作就是把java代码里面的注释读取出来,然后根据yapi需要的格式整理成对应的json,然后推送到yapi服务器,一时兴起,拉了一个开源代码库,然后在使用过程中遇到了不少问题,这篇文章讲一

额外说明

wordpress修复插件_自动修复的20个最佳WordPress主题

WordPress 修复插件 您是否正在寻找适合汽车维修或汽车经销业务的最佳 WordPress 主题?在浏览 WordPress 主题时,您可能无法立即判断主题是否适用于汽车维修网站。您将看到的许多主题可能具有通用的商业或公司外观。在本文中,我们精心挑

ads via 小工具