随笔分类 -  rpc

摘要:概述调用过程概述我们从开篇的源码分析就知道了 invoker 是调用目标的抽象,所以从上面也可以看到Proxy 调用的最终到了 invoker 对象,通过了 client 的传输,到了提供端,提供端经过解码等操作,最终到了到达的还是 invoker,最后到达实际的服务。更加详尽的调用过程 :源码分析我们先理清一下调用的大概过程,再进行源码分析proxy --> invoker --> chann... 阅读全文
posted @ 2020-04-21 15:11 float123 阅读(485) 评论(0) 推荐(0) 编辑
摘要:概述在上一节我们将集群的时候,最后的 invoker 又 负载均衡的 select 方法选出,我们先来看一下上一节设计到负载均衡的代码, AbstractClusterInvoker 类 : private Invoker doSelect(LoadBalance loadbalance, Invocation invocation, ... 阅读全文
posted @ 2020-04-17 16:48 float123 阅读(210) 评论(0) 推荐(0) 编辑
摘要:部分描述来自官方文档,本文加以润色,半原创集群概述我们先来看一下集群的作用 :为了处理这些问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这个 Invoker 暴露给服务消费者。这样一来,服务消费者只需通过这个 Invoker 进行远程调用即可,至于具体调用哪个服务提... 阅读全文
posted @ 2020-04-17 15:13 float123 阅读(304) 评论(0) 推荐(0) 编辑
摘要:文章部分描述来自官方文档,本文仅对其进行润色。概述我们上一节在分析服务导入的时候,createProxy 方法中,调用栈出现了 RegistryDirectory 这个类,且在这个类中进行了很多复杂的操作,最后还创建了一个 invoker ,那么这个 RegistryDirectory 到底是什么呢? 我们需要知道 invoker 是对一个 service 的某一个服务方法的抽象 。服务目录是什么... 阅读全文
posted @ 2020-04-14 16:13 float123 阅读(323) 评论(0) 推荐(0) 编辑
摘要:问题为什么返回的对象不直接是 Invoker 而是代理类呢回答 :Dubbo服务暴露的主要目的是让本地的服务bean能够让其它进程通过网络调用。在暴露服务前,dubbo需要根据配置信息收集服务相关信息,服务的配置信息都配置在ServiceConfig中。Dubbo接收到Spring触发的ContextRefreshedEvent事件后,dubbo进行真正的服务暴露过程。Dubbo服务暴露目的是让消... 阅读全文
posted @ 2020-04-13 14:31 float123 阅读(368) 评论(0) 推荐(0) 编辑
摘要:概述配置 dubbo我们在使用dubbo使用的时候,首先在 resources 下创建 dubbo-consumer.xml 和 dubbo-provider.xml 就可以了,例如我们看一下 dubbo-provider.xml -->provider 服务接口定义如下 :public interface DemoService { String sayHello(String nam... 阅读全文
posted @ 2020-04-09 14:38 float123 阅读(475) 评论(0) 推荐(0) 编辑
摘要:代码和示例的部分来自官方文档,本文只是经过润色概述SPI (Service Provider Interface)是JDK里面的扩展点发现机制。这个机制存在的动机是什么呢?服务发现。 往往我们的系统某个模块底层都有不同的实现,例如数据库的底层实现有 MySQL ,NoSQL 等,而 SPI 根据配置加载具体的实现,一个重要的作用就是解耦。dubbo 中的 SPIdubbo 中 SPI 改进的功能 ... 阅读全文
posted @ 2020-04-09 14:37 float123 阅读(317) 评论(0) 推荐(0) 编辑
摘要:部分图片和描述来自官方文档,非原创初始化过程细节解析服务解析服务是暴露服务(提供方 provider )和消费方(引用提供方的 service )的前一个步骤。回想我们如何使用dubbo的提供方 ... x消费方 ...下面我们看一下Dubbo 如何对XML的服务进行解析。解析实现基于 dubbo.jar 内的 META-INF/spring.handlers 配置,Sp... 阅读全文
posted @ 2020-03-03 16:17 float123 阅读(225) 评论(0) 推荐(0) 编辑
摘要:概述SPI (Service Provider Interface)是JDK里面的扩展点发现机制。这个机制存在的动机是什么呢?服务发现。 往往我们的系统某个模块底层都有不同的实现,例如数据库的底层实现有 MySQL ,NoSQL 等,而 SPI 根据配置加载具体的实现。SPI 在dubbo 中具体实现package com.alibaba.xxx; import org.apache.dubbo.... 阅读全文
posted @ 2020-03-03 16:16 float123 阅读(210) 评论(0) 推荐(0) 编辑
摘要:部分图片和表述来自dubbo官网 dubbo 概述背景这是一个服务端架构发展的路径图下面我们介绍后面两种,dubbo 正是处于RPC 范畴内的使用。分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。流动计算架构当服务越来越多,容量的... 阅读全文
posted @ 2020-02-21 14:54 float123 阅读(148) 评论(0) 推荐(0) 编辑
摘要:文章部分描述来自参考资料 RPC什么是RPC RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。 RPC协议假定某些传输协议的... 阅读全文
posted @ 2020-01-17 17:00 float123 阅读(332) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示