-
Dubbo 和 Spring Cloud 的区别
参考答案 定位:Dubbo 专注 RPC 和服务治理;Spirng Cloud 是一个微服务架构生态。 性能:Dubbo 强于 SpringCloud(主要是通信协议的影响)。 功能范围:Dubbo 诞生于面向服务架构时代,是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案;Spring Cloud 诞生于微服务架构时代,基于 Spring、Spring…...- 135
-
Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信么
参考答案 可以的,启动Dubbo时,消费者会从Zookeeper拉取注册的生产者的地址接口等数据,缓存在本地。 每次调用时,按照本地存储的地址进行调用。 注册中心集群,发生宕机会自动切换。 启动 Dubbo 时,Consumer 会从 Zookeeper 拉取 Provider 注册的地址、接口等数据,缓存在本地。 Consumer 每次调用时,按照本地存储的 Provider 地址进行调用。 P…...- 123
-
Dubbo的集群容错方案有哪些
参考答案 Dubbo的集群容错方案: Failover Cluster(默认):失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。 Failfast Cluster:快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。 Failsafe Cluster:失败安全,出现异常时,直接忽略。通常用于写入日志等。 Failback Cluster:…...- 117
-
Dubbo的服务治理是什么,为什么需要服务治理
参考答案 服务治理主要针对分布式服务框架的微服务,处理服务调用之间的关系、服务发布和发现、故障监控与处理,服务的参数配置、服务降级和熔断、服务使用率监控等。 需要服务治理的原因: 过多的服务 URL 配置困难。 负载均衡分配节点压力过大的情况下,需要部署集群。 服务依赖混乱,启动顺序不清晰。 过多服务,导致性能指标分析难度较大,需要监控。 故障定位与排查难度较大。 以上,是 Dubb…...- 108
-
Dubbo和Dubbox之间的关系
参考答案 Dubbo 是阿里巴巴公司开源的一个基于Java的高性能开源 RPC 框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。 Dubbo 后来没有维护,当当网基于 Dubbo 做了一些扩展,推出 Dubbox: 支持 REST 风格远程调用(HTTP + JSON/XML)。 支持基于 Kryo 和 FST 的 Java 高效序列化实现。 支…...- 106
-
Dubbo有些哪些注册中心
参考答案 Dubbo的注册中心: Zookeeper 注册中心: 基于分布式协调系统 Zookeeper 实现,采用 Zookeeper 的 watch 机制实现数据变更(官方推荐)。 Multicast 注册中心: 基于网络中组播传输实现,不需要任何中心节点,只要广播地址,就能进行服务注册和发现。 Redis 注册中心: 基于 Redis 实现,采用 key/Map 数据结构存储,主 key 存…...- 106
-
Dubbo的安全调用
参考答案 Dubbo的安全调用的实现: Dubbo 和 Zookeeper 基本都是部署在内网,不对外网开放。 Zookeeper 的注册可以添加用户权限认证。 Dubbo 通过 Token 令牌防止用户绕过注册中心直连。 在注册中心上管理授权。 增加对接口参数校验。 提供IP、服务黑白名单,来控制服务所允许的调用方。 以上,是 Dubbo面试题【Dubbo的安全调用】的参考答案。 输出,是最好的…...- 89
-
Dubbo支持哪些协议,各自的特点是什么
参考答案 Dubbo支持以下协议: 1. dubbo 默认协议 单一 TCP 长连接,Hessian 二进制序列化和 NIO 异步通讯。 适合于小数据包大并发的服务调用和服务消费者数远大于服务提供者数的情况。 不适合传送大数据包的服务。 2. rmi 协议 采用 JDK 标准的 java.rmi.* 实现,采用阻塞式短连接和 JDK 标准序列化方式。 如果服务接口继承了 java.rmi.Re…...- 88
-
Dubbo 和 Spring Cloud 的关系
参考答案 Dubbo是SOA时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。 Spring Cloud诞生于微服务架构时代,考虑的是微服务治理的方方面面,依托在 Spirng、Spirng Boot的优势之上。 两个框架在开始时目标就不一致,Dubbo 定位服务治理、Spirng Cloud 是一个生态。 以上,是 Dubbo面试题【Dubbo和Spring Cl…...- 87
-
Dubbo的主要应用场景
参考答案 Dubbo的主要应用场景: RPC 分布式服务,拆分应用进行服务化,提高开发效率,调优性能,节省竞争资源。 配置管理,解决服务的地址信息剧增,配置困难的问题。 服务依赖,解决服务间依赖关系错踪复杂的问题。 服务扩容,解决随着访问量的不断增大,动态扩展服务提供方的机器的问题。 以上,是 Dubbo面试题【Dubbo的主要应用场景】的参考答案。 输出,是最好的学习方法。 欢迎在…...- 87
-
Dubbo能做什么
参考答案 Dubbo的主要作用: 1. 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 2. 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。 3. 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。 以上,是Java面试题【Du…...- 77
-
Dubbo的主要作用
参考答案 Dubbo的主要作用: 透明化的远程方法调用,像调用本地方法一样调用远程方法。 负载均衡及容错机制,负载分发请求到不同的服务提供者,解决单点故障。 服务自动注册与发现,动态服务注册与请求分发,能够平滑添加或删除服务提供者。 以上,是 Dubbo面试题【Dubbo的主要作用】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---...- 77
-
Dubbo 与 Spring 的关系
参考答案 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入。 只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 Dobbo扩展的 spring xml配置文件节点说明如下: <dubbo:service/> 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注…...- 76
-
Dubbo有哪些负载均衡策略
参考答案 Dubbo 实现了常见的集群策略,并提供扩展点,予以自行实现。 Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀。 RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题。 LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收更少…...- 74
-
Dubbo的使用方法
参考答案 Dubbo的使用方法: Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可。Dubbo基于Spring的Schema扩展进行加载,如果不想使用Spring配置,可通过API的方式进行调用(不推荐)。 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置…...- 74
-
BIO、NIO、AIO有什么区别
参考答案 一、BIO、NIO、AIO的区别 1. BIO 是一个连接一个线程。 发起 IO 请求,不管内核是否准备好 IO 操作,从发起请求起,线程一直阻塞,直到操作完成。 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。 2.NIO 是一个请求一个线程。 客户端发送的…...- 67
-
Dubbo支持哪些序列化方式
参考答案 Dubbo支持以下序列化方式: Hessian 序列化:是修改过的 hessian lite,默认启用。 json 序列化:使用 FastJson 库。 java 序列化:JDK 提供的序列化,性能不理想。 dubbo 序列化:未成熟的高效 java 序列化实现,不建议在生产环境使用。 以上,是 Dubbo面试题【Dubbo支持哪些序列化方式】的参考答案。 输出,是最好的学习方法。 欢迎…...- 61
-
Dubbo 面试路线最全整理(附面试题精选及答案)
Dubbo 面试路线最全整理,附 Dubbo 高频必考面试题及答案。 搞定 Dubbo 面试题,看这一篇就够了,不用四处找资料,节约大量时间。 1 Dubbo 面试题及答案 Dubbo 基础 Dubbo是什么 Dubbo的由来 Dubbo能做什么 Dubbo的使用方法 Dubbo的主要作用 Dubbo的核心功能 Dubbo的主要应用场景 Dubbo支持哪些协议,各自的特点是什么 Dubbo支…...- 59
-
Dubbo 学习进阶路线及资料(附大厂面试题合集)
Dubbo 是 Java 程序员必知必会的框架之一,也是 Java 面试的高频知识点。 我最新总结的这份 Dubbo 学习进阶路线及资料,包含了 Dubbo 涉及的所有核心知识点,可以用来参考学习、构建知识体系、复盘技术栈。 Dubbo 学习进阶路线 把图谱放大,就能看清楚了。 《Dubbo 学习进阶路线》高清原图》,到文末直接获取。 Dubbo 学习进阶资料 Dubbo 基础 Dubbo是…...- 53
-
Dubbo的由来
参考答案 互联网的快速发展,Web应用程序的规模不断扩大,一般会经历如下四个发展阶段。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起即可。 垂直应用架构 当访问量逐渐增大,单一应用按照有业务线拆成多个应用,以提升效率。 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作…...- 52
-
是否遇到过Dubbo超时问题
参考答案 Dubbo 调用服务超时,默认是会重试两次的,但可能两次请求都是成功的。如果没有幂等性处理,就会产生重复数据。 可以考虑去除 dubbo 超时重试机制,重新评估设置超时时间。 Dubbo 的重试在集群环境下,会把超时的请求发到其他服务。 引起超时的原因可能出在消费端,也可能出现在服务端,服务器的网络、内存、CPU、存储空间都可能引起超时问题。 超时时间设置过小也会导致超时问题。 以上,是…...- 35
-
Dubbo服务注册与发现的流程
参考答案 流程说明: Provider(提供者)绑定指定端口并启动服务。 指供者连接注册中心,并发本机IP、端口、应用信息和提供服务信息发送至注册中心存储。 Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信息至注册中心。 注册中心根据 消费 者所求服务信息匹配对应的提供者列表发送至Consumer 应用缓存。 Consumer 在发起远程调用时基于缓存的消费者列表择…...- 25
-
Dubbo的架构是怎样的
参考答案 一、Dubbo的架构图 二、节点角色说明 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中心。 Container: 服务运行容器。 三、调用关系说明 0 服务容器负责启动,加载,运行服务提供者。 服务提供者在启动时,向注册中心注…...- 18
-
Dubbo的架构设计是怎样的
参考答案 Dubbo框架设计一共划分了10个层: 1. 服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。 2. 配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心。 3. 服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton。 4. 服务注…...- 15