17道java Dubbo必问题

      最后更新:2022-03-20 22:15:55 手机定位技术交流文章

      怎么了,杜博,什么是RPC?

      Dubbo是一个分布式服务框架,重点是提供高绩效和透明的RPC远程服务和SOA服务治理方案。

      RPC(远程生产呼叫) — — 呼叫远程进程 。这是远程计算机应用程序的网络服务请求不需要理解最基本的网络技术协议。辐射防护中心协定的前提是存在某些传输方法。例如,TCP或UDP。在通信协议之间传输数据。根据OSI网络通信模式RPC跨越了传输和应用程序层。区域竞争委员会促进各种应用的发展,例如网络分布的多种程序。RPC以客户/服务器模式运作。客户机是请求程序。服务器是服务提供者。首先,客户呼叫程序向包括进程参数在内的服务进程发送呼叫信息。然后等待应答信息。在服务器端,该程序在信息要求提出之前一直处于休眠状态。收到电话留言后服务器获得进程参数。计算结果,发送答复信息,然后你得等下通电话了最后,客户与程序联系,以获得答复信息。获得进程结果,随后又恢复了这一呼吁。有几种区域方案协调委员会模式和执行情况可供使用。

      我们把它变成简单的术语,在那里,远程电话是当地计算机调用远程机器的方法,也是远程机器交付结果的程序。

      为什么要这么做?

      这主要是因为单一服务性能不再适合我们,在交通量增加的时代,只有几个服务器能够维持目前的用户系统。

      在该系统下,越来越多的服务已发展成为目前的微服务RPC结构。

      Dubbo有什么选择?

      Dubbo的核心职能如下:

      • 远程通信: dubbo- remoting 模块允许在基于远程链接的各种非信息基础设施上发送信息,如许多线性模型、排序和“请求-回应”模型。

      • 提供基于接口技术的透明远程程序呼叫,包括多协议支持和集群支持,如软负载平衡、故障容忍度、地址路线、动态配置等。

      • 根据注册中心目录服务、透明地址和支持服务供应商的顺利增加或减少机器自动确定服务供应商的支助服务供应商动态搜索。

      你能告诉我们Dubbo的总电话吗?

      调用过程

      1. 代理物是包含一个反对者对象并与反对者通话的物体。

      2. 然后通过Croup进行负载容误差,重试失败。

      3. 对于远程服务,请使用目录输入者列表 。

      4. 负载均衡

        1. 用户根据规则配置路线规则,并过滤基于这些规则的登记者名单。

        2. 当用户不制定路线规则时,或者如果在路线配置后有大量节点,则使用“加载平衡法”平衡负载,该法选择了可引用的援引方。

      5. 穿过过滤链,通常处理孔径、流量限制、计数等等;

      6. 用户用于数据传输。

      7. 制定私有化协议(《法令》);

      8. 进行序列化;

      9. 此请求由服务器接收并指定给Treadpool。

      10. 服务器处理这些请求 。

      11. 应请求找到匹配的出口商;

      12. 然后,在服务提供者的尽头通过过滤链;

      13. 然后确定接口的位置,发出实际的电话,然后回复请求。

      4 解释Dubbo支持哪些协议,每项协议将在哪里执行,有哪些好处和缺点。

      1. Dubbo单行长连线和NIO非同步通信:服务要求适合大量和少量数据,消费者人数远远超过生产商。

      2. Rmi是通过使用JDK标准rmi协议实现的。转移和返回参数的物体必须执行串列式接口。在爪哇使用通常的测序法,使用阻塞式短连接,软件包大小组合已被传输 。客户和供应商的数量几乎相同。TCP、传输协议和可传递文件多个短连接,TCP 议定书的传输、同步转让使用标准的远程服务电话和淋巴互接器。缺点包括依赖一个低层次的 " 共同教育一揽子计划 " 。爪哇的序列有安全缺陷

      3. 基于WebServices的网络服务远程访问协议,加上CXF的实现,使得与原WebServices兼容。

      4. HTTP 是基于 HTTP 表格提交的远程呼叫协议 。弹簧用于实际的 HttpInvoke 。多个短连接,HTTP 传输协议,传入参数大小混合,供应商比客户多。必须援引JS应用程序和浏览器;

      5. 这篇文章是赫森服务社报导的一部分。它依靠HTTP通讯。使用 Serplet 曝光服务 。默认情况下, Dubbo 包含 Jetty 作为服务器 。提供与Hession服务的互操作性。多个短连接、 HTTP同步、 Hessian 排序传入参数较大,提供者大于消费者,提供者压力较大,可传文件;

      6. Memcache的RPC协议建立在混杂的之上;

      7. 基于 Redis 的 RPC 协议 。

      5 Dubbo采用什么设计模型?

      责任链模式

      与杜博框架的骨架一样,连锁责任范式在杜博至关重要。

      位于 Dubbo 的呼叫链组织以责任链模式连接。 责任链中每个节点都连接到过滤器接口, 然后协议过滤器将所有过滤器链接到协议过滤器中 。

      Dubbo的一些特征,如监测、伐木、暗藏、安全、Telnet和RPC本身,由过滤扩展处理。

      观察者模式

      登记服务是Dubbo最常用的观察员模式。

      消费者在启动时呼叫订阅方法并登记观察员,如果观察员提到的服务地址清单有变动,则通过通知听众提醒消费者。

      此外,Dubbo的“参与者倾听者”和“出口者倾听者”现在支持观察模式。只要接口 已经实现和注册,可从消费者端收到通知,要求查询,而供应商端则要求出口。

      修饰器模式

      Dubbo还广泛使用了修改方法,例如,《议定书》Filter-Wrapper类是《议定书》类的修改剂。

      在使用出口和查询方法时,过滤器是作为责任链概念框架内的责任链而建立的。实现 协议 函数修改 。此外,还有《议定书》的倾听者、利斯特·因波克·拉普尔、因波克·拉普尔及其他人。

      工厂方法模式

      根据工厂方法概念实施缓冲装置。

      GetCache 函数由缓存界面定义 。然后,为了完成Cachefactory, 构建一个抽象的抽象的抽象。此外,它分离了创建缓存功能,它能真正构建缓存。并设置为抽象方法。这将限制构建给定缓存到子类 。

      抽象工厂模式


      Dubbo的抽象工厂范式的典型例子。

      代用工具提供两种选择。它用来创建物体 代理者和反对者。因为获得Proxy 函数需要上传一个反对者对象,此外,“获得” Invoker 函数要求发送代理对象。这似乎是血管依赖。然而,这两种技术所使用的场景并不一样。

      代用界面由SimpactProxyFatory实施。一种特殊的实现类别是抽象的母体。JdkProxy Factory和Javasist ProxyFatory是两种截然不同的类型。它分别用于产生基于JDK和Javasist代用机制的代用和代用。

      适配器模式


      Dubbo 定制其 Logger 界面,并为流行日志组件(包括 jcl、jdk、log4j和 slf4j)提供合适的适配器,使客户能够根据需要选择日志组件。

      客户端可以建立抽象的 Dubbo 自定义的伐木机, 而不必担心使用简单的工厂模式给 Logger Factory 提供一个 LoggerFactory 实际使用的日志组件 。

      当初始化日志功能时, 客户端会通过指定系统变量来选择自己的日志组件, 从而允许相当大的灵活性 。

      代理模式

      在代理服务类中,Dubbo消费者代表当地远程服务。 本地代理提供与远程服务相同的界面,并阻断网络连接的细节,让消费者在使用本地代理时拥有与本地服务相同的经验。

      如果Dubbo的供应商提供几种服务版本呢?

      您可以直接控制 Dubbo 配置版本的不同版本。 例如 :

      上一个版本是版本=1. 图片来自Flickr用户pic.twitter.com0, 新版本为版本=1. 图片来自Flickr用户pic.twitter.comOne。

      7 服务接触过程是什么?

      1. 使用 ServiceConfig 解析 dubbo 标签, 并构建 dubbo 标签采集器来解析 dubbo 标签 。 包装完成后, 触发“ 背景刷新晚上” 事件回响以启动曝光服务 。

      2. 方法代用工具。此外,在利用贾瓦斯特或JdkProxyFactory作为动态剂时,无法获取文件夹“%s”:%s它包括有关该方法预定目标的信息以及具体的URL地址。

      3. Dubbo议定书正在将捆绑的投标人转换为出口商。

      4. 下一步, 启动服务器服务器, 以便它可以在端口监听 ;

      5. 最后,《登记议定书》在向服务中心登记之前,先储存URL地址和登记人地图。

      8 服务转介工作如何进行?

      1. 最初,客户使用配置文件信息从注册中心订阅。 首次在当地创建了全部缓存,并在当地创建了今后对理事会监听动态的修改。

      2. Dubbo协议随后根据客户的地址和接口信息,将客户与服务器连接起来。

      3. 代理服务器随后由服务界面的援引者建造,然后用于远程呼叫服务供应商,完成服务参考。

      Dubbo登记中心是什么?

      Zookeper, Redis, Multicast, 简单等等。 任何这些地点都可以作为 Dubbo 注册中心运作。

      那杜博的SPI机制呢?

      SPI是发现服务的一种技术。事实上,这是关于将结构的实现写进配置。当服务装入时, 请读取配置文件 。加载实现类。所以你想跑就跑,就跑吧该接口在取代实现等级方面得到积极协助。

      Dubbo的SPI是Java的SPI的延伸,它增加了海委会和APP的能力,使之与可能随需求而加载的执行类型以及自我适应的推广技术相适应。

      SPI用于广泛的杜博应用,例如协定的扩大、集群的扩大、路线的扩大、序列的扩大等等。

      Dubbo 文件目录设置分为三类:

      1. META-INF/services/tellow:该目录中的SPI简介用于符合Java SPI。

      2. META-INF/dubbo/ 目录: 本目录包括用户定义的 SPI 配置文件: key=com. I'm not sure you're on what about, xx.xx;

      3. Dubbo内部使用的SPI配置文件储存在META-INF/dubbo/内部/目录中。

      来自杜博和爪哇的11个SPI 有什么区别?

      Java SPI

      Java SPI 搜索扩展实现等级的 SPI 配置文件, 并查找该类别的所有示例 。

      Dubbo SPI

      1. Dubbo 扩展不需要修改 Dubbo 源代码 。

      2. 只装入您想要同时装入的扩展名, 从而延迟装入 。

      3. 对海委会和海洋保护方案的支助已经扩大,现在可以将一个延伸点直接注入更多的扩展点。

      4. Dubbo的扩展方法能够支持第三方的IoC容器以及默认情况下支持Spring Bean。

      12个平衡负载的解决方案是什么?

      加权随机


      例如,我们有三个服务器。 [A、B、C]给他们价值[4,5,6],然后将三个数字放在水平线上。和为 15。然后生成一个 1 到 15 之间的随机整数 。服务器A得分为0 -4服务器 B 编号为 4- 9 。服务器 C 编号为 9-15 。

      最小活跃数

      每个服务供应商对应一个主动数。开始时,主动服务供应商的数目为0。 在收到每项请求后,主动+1的数目在满足请求后减少一个。

      服务运行时间过后,业绩良好的服务提供者可以更快地处理请求,而且其动态越强,他们就能越快地优先收到新的服务请求。

      一致性哈希

      • 开始获取混合服务器( 节点) 的 Hashi 值, 并将其设定为 0-2 的 32 点圆( 连续圆) ;

      • 然后使用同样的程序来确定密钥的Hashi值,以便保存数据并将其映射到相同的圆上。

      • 然后,从数据映射的位置开始,以顺时针方向搜索,在发现的第一个服务器上存储数据;如果在32到2之间仍然找不到服务器,将从数据映射的位置开始,在第一个混混服务器的位置上保存,以顺时针方向搜索,在发现的第一个服务器上存储数据;如果在32到2之间仍然找不到服务器,将在第一个混混服务器上保存。

      加权轮询

      例如,如果有3个服务器[A、B、C],每个服务器的重量为[4、5、6],A服务器将受到4次点击,B服务器将受到5次点击,C服务器将受到6次点击,如果总共15次请求,则C服务器将受到6次点击。

      13 集群的不兼容模式是什么?

      1. 失败的 Cruster 无法自动切换 : 当调用失败时, 对 dubbo 的默认容忍度会自动移到其他可访问的节点 。 定制的retries 和 间隔可以通过引用服务来定义 。 默认的retries 数是 1, 这意味着调用只发出一次 。

      2. Back Croup 无法自动恢复: 无法调用、 捕捉日志和调用信息, 无法向消费者提供空结果, 并且每隔5秒钟通过预定任务重试一次不成功的调用 ;

      3. FaffastCluster 快速失败: 只呼叫一次, 并迅速发送错误 ;

      4. 不安全的克鲁斯特 未能安全 藉由引用异常, 而不是丢弃日志, 并提供空结果 。

      5. 伪造 Cruster 同时呼叫许多服务供应商: 它通过线索库创建多个线索, 并发送许多援助请求, 这些请求被存储到区块 Quueue 。 只要一个提供者成功交付了结果, 就会将结果立即归还给许多服务供应商 : 它通过线索库创建多个线索, 并发送多个援助请求, 这些请求被保存到区块 Quue 。 只要一个提供者成功返回结果, 就会立即返回结果 。

      6. 广播集束广播模式: 逐个联系每个提供方。 如果其中之一不正确, 在循环电话完成后, 异常点会被丢弃 。

      14个关于Dubbo的分层?

      分层图

      Dubbo广泛分为三个阶层:

      • 我们在商业业务逻辑层提供接口和某些配置信息。

      • RPC层是真正的RPC调用核心层,涵盖全RPC调用过程,包括负载平衡、集束容忍误差和代用。

      • 网络传输协议和数据转换的封装称为重新移动。

      API层由两层服务和配置组成。这篇论文是我们关于API用户系列的一部分。用户唯一需要做的就是配置和完成业务代码。后方所有级别都使用SPI层。提供给扩展者使用。Dubbo的二级发展功能扩展主要使用。也有点瘦 有点复杂这是图表的10层图案

      15 服务提供者在什么基础上可能无法起步?

      根据Zookeper临时节点设想,服务中断发生。

      在Zookeper,每个节点都有生命周期,而特定生命周期则依赖于节点的类型。 节点被归类为耐久(持久)或短暂(短暂)。

      16,你为什么用代理人来沟通?

      在现实中,主要目标是封装呼叫信息,使远程呼叫与本地呼叫一样简单。 进一步的升级可能包括负载平衡、过错容忍方法、过滤程序以及调用数据的统计数据。

      17 您如何创建 RPC 框架?

      关键要素是您掌握了RPC框架:成熟RPC框架能发挥什么作用?

      如果我们看一下一两个RPC框架, 我们可以用7,7,8来回答这个问题。

      1. 第二,我们需要一个注册中心来管理消费者和供应商的节点信息,以便他们可以订阅服务并登记服务。

      2. 当注册一个中心时, 可能有很多供应商节点 。 毫无疑问, 联系节点需要一个负负平衡模块 。 至于用户指定的路线规则, 这可以被视为一个额外的优异点 ;

      3. 特别电话必然需要通信协议,因此需要一个包含通信协议的模块,网络传输将须考虑顺序安排。

      4. 您如何处理呼叫失败? 因此, 管理失败需要一个错误容忍模块 。

      5. 在此之后,建立了一个基本模型,还可以进一步优化,例如监测数据请求、处理配置信息、处理日志信息等等。

      这是一个基本的RPC框架概念。你做过吗?

      包括一位采访编辑! 这是完全免费的!

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/20534.html

          热门文章

          文章分类