lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2021年4月25日

摘要: 一、同步调用 默认情况下,我们通过Dubbo调用一个服务,需得等服务端执行完全部逻辑,方法才得以返回。这个就是同步调用。 但大家是否考虑过另外一个问题,Dubbo底层网络通信采用Netty,而Netty是异步的;那么它是怎么将请求转换成同步的呢? 首先我们来看请求方,在DubboInvoker类中, 阅读全文
posted @ 2021-04-25 19:48 白露~ 阅读(733) 评论(0) 推荐(0)

摘要: 前言 当我们的Dubbo应用出现多个服务提供者时,服务消费者如何选择哪一个来调用呢?这就涉及到负载均衡算法。 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每 阅读全文
posted @ 2021-04-25 19:46 白露~ 阅读(162) 评论(0) 推荐(0)

摘要: 前言 在上一章节,我们曾提到这样一个问题:当调用服务失败后,我们怎么处理当前的请求?抛出异常亦或是重试? 为了解决这个问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这 阅读全文
posted @ 2021-04-25 19:39 白露~ 阅读(209) 评论(0) 推荐(0)

摘要: 前言 在上一章节的内容中,我们分析了服务引用的具体流程。在大多数情况下,为避免单点故障,我们的应用会部署在多台服务器上。对于我们的Dubbo而言,就会出现多个服务提供者。而且这些服务也并非是一成不变的,那么就有这样一个问题:有新的服务提供者加入或者禁用、修改已有的服务提供者,那么服务消费者怎么及时感 阅读全文
posted @ 2021-04-25 19:33 白露~ 阅读(165) 评论(0) 推荐(0)

摘要: 前言 在前面的章节中,我们已经完成Dubbo服务暴露的流程分析。今天我们一起来看Dubbo怎么引用这些服务的。 关于服务引用,Dubbo有两种方式。一种是基于注册中心进行服务引用,一种是服务直连进行引用。服务直连主要用于测试联调阶段,生产环境不推荐使用。它的配置也比较简单,在消费者端指定服务url即 阅读全文
posted @ 2021-04-25 19:32 白露~ 阅读(292) 评论(0) 推荐(0)

摘要: 一、服务暴露 private <T> ExporterChangeableWrapper<T> doLocalExport(final Invoker<T> originInvoker) { String key = getCacheKey(originInvoker); //首先尝试从缓存中获取 阅读全文
posted @ 2021-04-25 19:29 白露~ 阅读(213) 评论(0) 推荐(0)

摘要: 清幽之地关注 0.8352019.01.03 16:31:26字数 1,995阅读 892 前言 我们在第2章节里面,已经讲到Dubbo的初始化流程。Dubbo的初始化是随着Spring容器Bean的实例化而进行的,今天我们重点看这样一个节点,它在配置文件中是这样的:<dubbo:service i 阅读全文
posted @ 2021-04-25 19:28 白露~ 阅读(112) 评论(0) 推荐(0)

摘要: 清幽之地关注 0.8722019.01.02 23:29:51字数 2,464阅读 1,784 前言 我们在往期文章中,曾经深入分析过Java的SPI机制,它是一种服务发现机制。具体详见:深入理解JDK的SPI机制 在继续深入Dubbo之前,我们必须先要明白Dubbo中的SPI机制。因为有位大神(佚 阅读全文
posted @ 2021-04-25 19:25 白露~ 阅读(227) 评论(0) 推荐(0)

摘要: 清幽之地关注 0.1812019.01.01 17:14:33字数 1,129阅读 462 前言 上一节,我们通过与Spring集成的实例,把Dubbo项目跑了起来。但是Dubbo项目是怎么运行起来的呢?它的入口在哪里? 在官网上有这么一句话:Dubbo 采用全 Spring 配置方式,透明化接入应 阅读全文
posted @ 2021-04-25 19:24 白露~ 阅读(225) 评论(0) 推荐(0)

摘要: 前言 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 1、特性 面向接口代理的高性能RPC调用 提供高性能的基于代理的远程调用能力,服务以 阅读全文
posted @ 2021-04-25 19:20 白露~ 阅读(358) 评论(0) 推荐(0)

摘要: 2021最新Java面经整理 | 框架篇(四)Dubbo框架 目录 一、Dubbo 的工作流程 二、Dubbo 的十层架构 三、Dubbo 常见配置 四、服务调用 1、提供者暴露一个服务的过程 2、消费者消费一个服务的过程 3、服务调用过程 五、Dubbo 的负载均衡机制 六、Dubbo 的容错机制 阅读全文
posted @ 2021-04-25 19:01 白露~ 阅读(403) 评论(0) 推荐(0)

摘要: 1、为什么要用Dubbo? 随着服务化的进一步发展,服务越来越多,服务之间的调用和依赖关系也越来越复杂,诞生了面向服务的架构体系(SOA), 也因此衍生出了一系列相应的技术,如对服务提供、服务调用、连接处理、通信协议、序列化方式、服务发现、服务路由、日志输出等行为进行封装的服务框架。 就这样为分布式 阅读全文
posted @ 2021-04-25 18:49 白露~ 阅读(185) 评论(0) 推荐(0)

摘要: 一、什么是dubbo Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看, Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务 阅读全文
posted @ 2021-04-25 17:41 白露~ 阅读(926) 评论(0) 推荐(0)

摘要: 写在前面 上周,在【Dubbo系列专题】中更新了两篇文章《冰河开始对Dubbo下手了!》和《俯瞰Dubbo全局,阅读源码前必须掌握这些!!》,收到了很多小伙伴的微信私聊消息,大部分都是在询问如何快速的掌握Dubbo的原理和源码。针对这个问题,我也在思考如何以更简单、易懂的方式让小伙伴们更好的掌握Du 阅读全文
posted @ 2021-04-25 17:38 白露~ 阅读(158) 评论(0) 推荐(0)

摘要: dubbo SPI(Service Provider Interface) 本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。 在Java中SPI是被用来设计给服务提供商做插件使用的。基于策略模式 来实现动态加载的机制 。我们在 阅读全文
posted @ 2021-04-25 14:55 白露~ 阅读(469) 评论(0) 推荐(0)

摘要: 1.简介 SPI 全称为 Service Provider Interface,是一种服务发现机制。 SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展 阅读全文
posted @ 2021-04-25 14:54 白露~ 阅读(114) 评论(0) 推荐(0)

摘要: 引言 SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。 阅读全文
posted @ 2021-04-25 14:50 白露~ 阅读(277) 评论(0) 推荐(0)

摘要: Dubbo 的扩展点加载从 JDK 标准的 SPI 扩展点发展而来;相比于 JDK 的 SPI,Dubbo 的扩展点改进了以下几个问题(引用自 Dubbo 官网): JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源 如果扩展点加载失败 阅读全文
posted @ 2021-04-25 14:47 白露~ 阅读(159) 评论(0) 推荐(0)

摘要: 开篇 SPI全称为Service Provider Interface,是一种服务提供机制,比如在现实中我们经常会有这种场景,就是对于一个规范定义方而言(可以理解为一个或多个接口),具体的服务实现方是不可知的(可以理解为对这些接口的实现类),那么在定义这些规范的时候,就需要规范定义方能够通过一定的方 阅读全文
posted @ 2021-04-25 14:22 白露~ 阅读(265) 评论(0) 推荐(0)

摘要: 1.什么是SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。 2.SPI和API的使用场景 API (Application Program 阅读全文
posted @ 2021-04-25 13:27 白露~ 阅读(714) 评论(1) 推荐(1)