
dubbo
大神,快来碗里
专注于Java相关技术
展开
-
dubbo(10) 简单理解一个dubbo服务的完整调用过程
参考文献dubbo官网-dubbo服务的完整调用过程 感受学习业内优秀开源分布式框架的底层rpc实现。 调用过程大致可以分为六个阶段,这里只贴出服务调用各个阶段的调用栈进行备忘,详细源码分析请点击原文链接进行阅读 1 服务消费方(dubbo-consumer)发布请求 调用栈 proxy0#sayHello(String) —> InvokerInvocationHandler#invo...原创 2019-12-08 12:54:28 · 11165 阅读 · 0 评论 -
dubbo(9) Dubbo源码解析之同步调用与异步调用
一、同步调用 默认情况下,我们通过Dubbo调用一个服务,需得等服务端执行完全部逻辑,方法才得以返回。这个就是同步调用。 但大家是否考虑过另外一个问题,Dubbo底层网络通信采用Netty,而Netty是异步的;那么它是怎么将请求转换成同步的呢? 首先我们来看请求方,在DubboInvoker类中,它有三种不同的调用方式。 protected Result doInvoke(final Invoc...原创 2019-05-04 12:52:49 · 13389 阅读 · 0 评论 -
dubbo(8) Dubbo源码解析之集群容错机制
前言 在上一章节,我们曾提到这样一个问题: 当调用服务失败后,我们怎么处理当前的请求?抛出异常亦或是重试? 为了解决这个问题,Dubbo 定义了集群接口 Cluster 以及 Cluster Invoker。集群 Cluster 用途是将多个服务提供者合并为一个 Cluster Invoker,并将这个 Invoker 暴露给服务消费者。这样一来,服务消费者只需通过这个 Invoker 进行远程...原创 2019-05-04 12:52:13 · 12901 阅读 · 0 评论 -
dubbo(7) Dubbo源码解析之服务集群
来源:https://juejin.im/post/5caea0b2e51d456e720778d9 1.简介 为了避免单点故障,现在的应用通常至少会部署在两台服务器上。对于一些负载比较高的服务,会部署更多的服务器。这样,在同一环境下的服务提供者数量会大于1。对于服务消费者来说,同一环境下出现了多个服务提供者。这时会出现一个问题,服务消费者需要决定选择哪个服务提供者进行调用。另外服务调用失败时...原创 2019-05-04 12:31:02 · 11026 阅读 · 0 评论 -
dubbo(6) Dubbo源码解析之服务路由策略
来源:https://juejin.im/post/5ca49fcff265da30916595c4 1. 简介 服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在详细分析服务路由的源码之前,先来介绍一下服务路由是什么。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubb...原创 2019-05-04 12:30:23 · 11035 阅读 · 0 评论 -
dubbo(5) Dubbo源码解析之服务调用过程
来源:https://juejin.im/post/5ca4a1286fb9a05e731fc042 Dubbo源码解析之服务调用过程 简介 在前面的文章中,我们分析了 Dubbo SPI、服务导出与引入、以及集群容错方面的代码。经过前文的铺垫,本篇文章我们终于可以分析服务调用过程了。Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派...原创 2019-05-04 12:29:23 · 10985 阅读 · 0 评论 -
dubbo(4) Dubbo源码解析之服务引入过程
来源:https://juejin.im/post/5ca37314e51d454cb97d9c40 1. 简介 在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的场景下使用,不适合在线上环境使用。因此,本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用...原创 2019-05-04 12:28:39 · 10915 阅读 · 1 评论 -
dubbo(3) Dubbo源码解析之服务导出过程
来源:https://juejin.im/post/5ca3702be51d45377e64fbe8 1.简介 本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装 URL。第二部分是导出服务,包含导出服务到本...原创 2019-05-04 12:28:02 · 11032 阅读 · 0 评论 -
dubbo(2) Dubbo源码解析之SPI机制
来源:https://juejin.im/post/5ca2d84bf265da3083063aa3 1. 简介 Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求。在 Dubbo 中,SPI 是一个非常重要的模块。基于 SPI,我们可以很容易的对 Dubbo 进行拓展。 2. 源码分析 Dubbo SPI 的相关逻辑被封装在了 Extension...原创 2019-05-04 12:26:22 · 10846 阅读 · 0 评论 -
dubbo(1) Dubbo源码解析之负载均衡策略
简介 在 Dubbo 中,所有负载均衡实现类均继承自 AbstractLoadBalance,该类实现了 LoadBalance 接口,并封装了一些公共的逻辑。所以在分析负载均衡实现之前,先来看一下 AbstractLoadBalance 的逻辑。首先来看一下负载均衡的入口方法 select,如下: @Override public <T> Invoker<T&g...原创 2019-05-04 12:25:40 · 10905 阅读 · 0 评论