Dubbo 面试题及答案【二】

news/2024/4/26 22:45:40/文章来源:https://blog.csdn.net/zf888999666/article/details/128422040
流程说明:
Provider(提供者)绑定指定端口并启动服务
指供者连接注册中心,并发本机 IP、端口、应用信息和提供服务信息
发送至注册中心存储
Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信
息至注册中心
注册中心根据 消费 者所求服务信息匹配对应的提供者列表发送至
Consumer 应用缓存。
Consumer 在发起远程调用时基于缓存的消费者列表择其一发起调
用。
Provider 状态变更会实时通知注册中心、在由注册中心实时推送至
Consumer
设计的原因:
Consumer 与 Provider 解偶,双方都可以横向增减节点数。
注册中心对本身可做对等集群,可动态增减节点,并且任意一台宕掉
后,将自动切换到另一台
去中心化,双方不直接依懒注册中心,即使注册中心全部宕机短时间
内也不会影响服务的调用
服务提供者无状态,任意一台宕掉后,不影响使用
Dubbo 的架构设计?
Dubbo 框架设计一共划分了 10 个层:
服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提
供方和服务消费方的业务设计对应的接口和实现。
配置层(Config):对外配置接口,以 ServiceConfig 和
ReferenceConfig 为中心。
服务代理层(Proxy):服务接口透明代理,生成服务的客户端 Stub
和服务器端 Skeleton。
服务注册层(Registry):封装服务地址的注册与发现,以服务 URL
为中心。
集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册
中心,以 Invoker 为中心。
监控层(Monitor):RPC 调用次数和调用时间监控。
远程调用层(Protocol):封将 RPC 调用,以 Invocation 和 Result
为中心,扩展接口为 Protocol、Invoker 和 Exporter。
信息交换层(Exchange):封装请求响应模式,同步转异步,以
Request 和 Response 为中心。
网络传输层(Transport):抽象 mina 和 netty 为统一接口,以
Message 为中心。
Dubbo 的服务调用流程?
Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
dubbo:
单一长连接和 NIO 异步通讯,适合大并发小数据量的服务
调用,以及消费者远大于提供者。传输协议 TCP,异步,Hessian 序
列化;
rmi:
采用 JDK 标准的 rmi 协议实现,传输参数和返回参数对象需要
实现 Serializable 接口,使用 java 标准序列化机制,使用阻塞式短连
接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,
传输协议 TCP。 多个短连接,TCP 协议传输,同步传输,适用常规的
远程服务调用和 rmi 互操作。在依赖低版本的 Common-Collections
包,java 序列化存在安全漏洞;
webservice:
基于 WebService 的远程调用协议,集成 CXF 实现,
提供和原生 WebService 的互操作。多个短连接,基于 HTTP 传输,
同步传输,适用系统集成和跨语言调用;
http:
基于 Http 表单提交的远程调用协议,使用 Spring 的
HttpInvoke 实现。多个短连接,传输协议 HTTP,传入参数大小混
合,提供者个数多于消费者,需要给应用程序和浏览器 JS 调用;
hessian:
集成 Hessian 服务,基于 HTTP 通讯,采用 Servlet 暴露
服务,Dubbo 内嵌 Jetty 作为服务器时默认实现,提供与 Hession 服
务互操作。多个短连接,同步 HTTP 传输,Hessian 序列化,传入参
数较大,提供者大于消费者,提供者压力较大,可传文件;
memcache:
基于 memcached 实现的 RPC 协议
redis:
基于 redis 实现的 RPC 协议
dubbo 推荐用什么协议?
默认使用 dubbo 协议
Dubbo 有些哪些注册中心?
Multicast 注册中心:
Multicast 注册中心不需要任何中心节点,只
要广播地址,就能进行服务注册和发现。基于网络中组播传输实现;
Zookeeper 注册中心:
基于分布式协调系统 Zookeeper 实现,采用
Zookeeper 的 watch 机制实现数据变更;
redis 注册中心:
基于 redis 实现,采用 key/Map 存储,住 key 存储
服务名和类型,Map 中 key 存储服务 URL,value 服务过期时间。基
于 redis 的发布/订阅模式通知数据变更;
Simple 注册中心
Dubbo 默认采用注册中心?
采用 Zookeeper

想要了解更多Java基础知识,可以点击评论区链接和小编一起学习java吧,此视频教程为初学者而著,零基础入门篇!给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_239669.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WEB1.0起源:全球首个网站info.cern.ch

伯纳斯李(图)1990年创立第一个网站。 info.cern.ch是世上第一个网站,提供有关万维网的资料。 info.cern.ch这个网站依然运作如常。 英国科学家蒂姆伯纳斯-李 (Tim Berners-Lee) 于 1989 年在 CERN 工作期间发明了万维网 (WWW)。Web 最初的构思…

mqtt的使用与二次封装

前提:先安装Mosquitto并启动服务,可使用mqttx进行接收发送的测试。 Mosquitto以配置启动命令 mosquitto -c mosquitto.conf -v原文链接:mqtt的使用 本文为测试使用固无账号密码,可在原文查看 封装后实现效果,加入一个…

耗时二周,万字总结Maven简明教程,与君共勉!

什么是Mavne Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合。由于 Maven 使用标准目录布局和默认构建生命周期,开发团队几乎可以立即自动化项目的构建基础设施。在多个开发团队环…

消息队列RabbitMQ学习笔记(四)死信队列和延迟队列

1. 死信的概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理 解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息 进行…

Linux 下 使用点阵在LCD上显示汉字,字符

文章目录前言一、显示字符1.获取点阵:2.描点(显示字符函数):3. 要打开LCD设备:4. 通过ioctl 获取Framebuffer参数:5. 通过mmap映射出Framebuffer的地址:6.清屏并显示字符:二、显示汉字1.区位码&…

多线程基础入门

文章目录前言一、认识线程(一)概念1.线程是什么2.为啥要有线程(轻量级进程)为什么线程比进程更轻量经典面试题:谈谈进程和线程的区别和联系3.线程的结构(二)第一个多线程程序(三&…

我国用电信息采集系统行业应用需求及市场容量分析 现6省上线运行

用户用电信息采集系统是通过对配电变压器和终端用户的用电数据的采集和分析,实现用电监控、推行阶梯定价、负荷管理、线损分析,最终达到自动抄表、错峰用电、用电检查(防窃电)、负荷预测和节约用电成本等目的。建立全面的用户用电…

RabbitMQ 第一天 基础 4 RabbitMQ 的工作模式 4.4 Topic 通配符模式 4.5 工作模式总结

RabbitMQ 【黑马程序员RabbitMQ全套教程,rabbitmq消息中间件到实战】 文章目录RabbitMQ第一天 基础4 RabbitMQ 的工作模式4.4 Topic 通配符模式4.4.1 模式说明4.4.2 代码编写4.4.3 小结4.5 工作模式总结第一天 基础 4 RabbitMQ 的工作模式 4.4 Topic 通配符模式 …

32天高效突击:开源框架+性能优化+微服务架构+分布式,面阿里获P7(脑图、笔记、面试考点全都有)

今年的大环境不佳,所以大部分的人在今年的招聘旺季都没有收获到好的结果。 但不要着急,今天分享的内容则是由 一位阿里P7的面试心得,通过32天的高效突击训练,成功拿下offer的学习方法。 篇章分为三大章节,可以根据自…

day 10 模拟和高精度

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 #include<bits/stdc.h> using namespace std; int n, na, nb, fa, fb;//f:得分 int a[205], b[205];void fun(int ta, int tb){if(ta 0 && tb 1) fb;if(ta 1 && tb 0) fa;if(ta 0 && tb …

【nowcoder】笔试强训Day2

目录 一、选择题 二、编程题 2.1排序子序列 2.2倒置字符串 一、选择题 1.A 派生出子类 B &#xff0c; B 派生出子类 C &#xff0c;并且在 java 源代码有如下声明&#xff1a; 1. A a0new A(); 2. A a1new B(); 3. A a2new C(); 问以下哪个说法是正确的&#xff08;&…

机器学习 | 线性回归

一.基本原理 利用回归方程&#xff08;函数&#xff09;对一个或多个自变量&#xff08;特征值&#xff09;和因变量&#xff08;目标值&#xff09;之间关系进行建模的一种分析方式 根据线性代数&#xff0c;我们可以定义方程 xwy&#xff0c;在线性回归问题中&#xff0c;x…

前端小知识:赋予变量默认值(逻辑与运算符、空值合并运算符、逻辑空运算符)

8. 逻辑与运算符、空值合并运算符、逻辑空运算符&#xff08;可用赋予默认值&#xff09; &#xff08;空值合并运算符&#xff09;官方文档&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing   &#xff08;逻辑…

【推荐收藏】这份图解算法数据结构的材料太良心

5年前发生的一件事&#xff0c;成为了我职业生涯的重要转折点。当时的我在交大读研&#xff0c;对互联网求职一无所知&#xff0c;但仍然硬着头皮申请了 Microsoft 实习生。面试官让我在白板上写出“快速排序”代码&#xff0c;我畏畏缩缩地写了一个“冒泡排序”&#xff0c;并…

1754. 构造字典序最大的合并字符串

摘要 1754. 构造字典序最大的合并字符串 一 贪心算法分析 题目要求合并两个字符串 word1 与 word2&#xff0c;且要求合并后的字符串字典序最大。首先需要观察一下合并的选择规律&#xff0c;假设当前需要从 word1​ 的第 i 个字符和 word2​ 的第 j个字符选择一个字符加入到…

自制macOS安装镜像iso虚拟机用

在网上下载的用于在虚拟机中安装的镜像版本相对比较旧。安装完成后还要进行升级比较麻烦。于是我就想自己制作安装镜像了。 精华 #创建空白磁盘镜像 hdiutil create -o /tmp/ventura -size 13800m -volname ventura -layout SPUD -fs HFSJ #挂载上面创建的镜像 hdiutil attac…

内容资产管理11问

&#x1f447;点击一键关注主笔&#xff1a;邹小困、邝晴岚主持人&#xff1a;增长黑盒分析师Emma出品&#xff1a;增长黑盒研究组前言在这个信息爆炸的数据时代&#xff0c;各个行业正积极推进数字化转型&#xff0c;产业升级与技术赋能成为主题之一。在推进企业线上线下融合的…

最近面试遇到一个算法题,简单写一点。

第⼀题&#xff08;必答&#xff09; 请针对有重复数字的数组设计⼀个快排算法&#xff0c;⽐如&#xff1a;[34, 34, 89, 1, 1, 20, 12]&#xff0c;排序后结果为 [89,34,34,20,12,1,1] 第⼆题&#xff08;必答&#xff09; 请利⽤Redis 实现⼀个通⽤分布式锁&#xff0c;并…

B+树 [数据结构与算法][Java]

B树 B树是B树的一种变形 我们通过一颗四阶B树来理解认识一下B树:(如下:) 我们其实从图上就可以看出B树和B树是有很多不同之处的 比如我们的B树中将叶子结点层的所有结点使用一个链表串联了起来B树中对于非叶子结点都是只是存储的索引(指针), 并没有存储关键字, 所以我们最终查…

Linux系统基础——BIOS和Bootloader

BIOS和Bootloader 特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料&#xff0c;本文大部分内容和所有图片来源于这个专栏。 1 了解背景 1.1 目的 操作系统不是在板子上电就直接运行的&#xff0c;上电到系统启动的中间过程要搞明白&#xff0c;比如了解linux系统启动…