dubbo
dragon@oo
糟糕的坚持也好过放弃
展开
-
dubbo源码系列11-自适应拓展机制 Adaptive
一、前沿调试 dubbo 源码时,相信大家经常会遇到这样一个问题,即调用 Protocol、Cluster、ProxyFactory、LoadBalance(这些类中都有 SPI 注解) 中定义的带有 Adaptive 注解的方法时总是按照以下流程调用:步骤一: 调用 url 的 getXXX 方法获取参数值 步骤二: 调用 ExtensionLoader 的 getExtensio...原创 2019-11-20 14:34:41 · 849 阅读 · 0 评论 -
dubbo源码系列8-集群容错之服务路由 Router
一、前沿在上一节中我们分析了集群容错的第一部分 — 服务目录 Directory,服务目录在列举 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的 provider,接下来我们分析集群容错的第二部分 — 服务路由 Router服务路由 Router 定义:Router 包含一条路由规则,路由规则决定了 consumer 的调用目标,即规定了 consu...原创 2019-11-19 14:19:07 · 424 阅读 · 0 评论 -
dubbo源码系列7-集群容错之服务目录 Directory
一、前沿服务导出和服务引用都已经讲完了,接下来就该分析服务的调用过程,但在服务调用过程中有一个非常重要的模块需要先学习一下,即集群容错模块,集群容错模块包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance,下面会分四个章节分别为大家讲解。,首先我们看 服务目录 Directory。定义:服务目录 director...原创 2019-11-18 16:24:24 · 740 阅读 · 0 评论 -
dubbo源码系列10-集群容错之负载均衡
一、前沿LoadBalance 意为负载均衡,它主要负责将网络请求均摊分发到不同的机器上,避免集群中部分机器的压力过大,而另外一些机器比较空闲的情况。通过负载均衡,可以让集群中的每台机器得到适合自己处理能力的负载,这样可以还可以避免资源浪费。负载均衡分为软件均衡和硬件均衡,在开发中我们几乎很难接触到硬件均衡,但软件均衡是我们很容易接触到的,软件均衡比如 Nginx。dubbo 中为了将co...原创 2019-11-15 17:49:12 · 241 阅读 · 0 评论 -
dubbo源码系列9-集群容错之dubbo集群 Cluster
一、前沿现在的应用为了解决单点故障的问题,通常都会将应用部署到至少两台机器上,对于负载较高的服务,还会部署更多的机器支撑业务。同理在 dubbo 中同样会有多个 provider 为同一服务提供服务,此时 consumer 就需要决定选择调用哪一个 provider。此外服务调用失败时的处理逻辑也需要考虑设计,比如:重试、抛出异常或者是只输出异常等,为了解决这些问题,dubbo 定义了集群接口...原创 2019-11-14 10:37:57 · 618 阅读 · 0 评论 -
dubbo源码系列6-服务调用过程(consumer->provider)
一、前沿前面分析了 Dubbo SPI、provider服务导出、consumer服务引用的源码,接下来就是分析服务调用的过程了,在学习服务调用之前,最好先学习集群容错模块,它包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalanceDubbo 服务调用过程比较复杂,总体上来说包含如下步骤:发送请求 -&g...原创 2019-11-14 10:25:22 · 2978 阅读 · 0 评论 -
dubbo源码系列5-consumer服务引用
一、前沿在dubbo源码系列4-provider启动服务导出中我们了解了 provider 导出服务的整个过程,服务导出之后就是要应用这些服务了,即服务引入。dubbo中引用远程服务有两种方式:服务直连(不经过注册中心)、基于注册中心引用服务,在实际线上环境中我们基本上使用的都是基于注册中心引用服务的方式,下面我们就围绕该方式讲解分析二、服务引用原理Dubbo 服务引用的时机有以下...原创 2019-11-04 10:19:09 · 549 阅读 · 0 评论 -
dubbo源码系列4-provider服务导出
一、前沿在dubbo启动Bean生成中我们了解了dubbo是如何借助 Spring 扩展功能来加载 bean 的,下面我们讲一下 dubbo 的 provider(提供者)的启动过程流程以及启动过程都做了些什么操作二、服务导出原理Dubbo 服务导出时机有如下两个:1)、Spring 容器调用 ServiceBean 的 afterPropertiesSet 方法时导出服务...原创 2019-10-31 10:15:15 · 453 阅读 · 0 评论 -
dubbo源码系列2-Dubbo SPI源码
简介SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。不过...原创 2019-10-21 15:02:20 · 353 阅读 · 0 评论 -
dubbo源码系列3-dubbo启动Bean生成
从dubbo源码系列1我们了解了 dubbo 的总体架构设计,下面详细讲解dubbo 启动时是怎样无缝对接 spring 启动加载自己的 beandubbo启动方式1、standlone模式: 通过 Main 方法加载 Spring 启动2、使用容器启动: 通过 tomcat、 jetty 等加载 Spring 启动这两种方式的启动都是为了融合到 spring 启动中来加载自...原创 2019-10-28 09:46:40 · 582 阅读 · 0 评论 -
dubbo源码系列1-总架构
dubbo架构dubbo是阿里集团开源的一个非常出名的RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。远程接口是基于Java Interface,并且依托于spring框架管理bean,开发非常方便。dubbo 最重要的五个核心模块:provider(提供者)、registry(注册中心)、consumer(消费者)、monitor(监控)和 ...原创 2019-10-15 15:27:24 · 240 阅读 · 0 评论 -
dubbo自定义集群策略扩展
背景最近项目中使用dubbo遇到了这样一个问题,dubbo invoke 要通过请求参数来动态决定,即不同的参数对应 dubbo 请求转到指定的机器上去。集群策略源码要实现背景中提到的问题,就必须先了解一下 dubbo 的源码1、首先从配置入手,如果配置中可以灵活设置自定义的集群策略,就可以通过扩展源码来实现,下面看一下配置:dubbo配置:dubbo 源码:通...原创 2019-08-07 16:20:34 · 1515 阅读 · 0 评论 -
linux安装dubbo-monitor
一、DubboMonitor作用dubboMonitor是dubbo的管理UI界面,方便管理和查看所有的dubbo配置,如下图所示:二、DubboMonitor安装git项目下载路径:https://gitee.com/cai820105/dubbo-monitor.git按照 ReadMe.md 文件步骤安装即可三、DubboMonitor启动和配置启动项目脚...原创 2019-06-14 10:36:53 · 718 阅读 · 0 评论