![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Dubbo
文章平均质量分 85
爱喝冰阔乐
这个作者很懒,什么都没留下…
展开
-
dubbo服务暴露简版总结
dubbo服务导出1.serviceBean实现了ApplicationListener接口,当spring刷新上下文的时候,会回调onApplicationevent事件2.是否延迟导出,执行export方法3.执行父类ServiceConfig的export方法,4.执行doExport5.执行doExportUrl导出服务6.执行doExportUrlForProtocol为每个协议下面导出服务7.执行RegisteyProtocol里面的export方法,将服务者链接包装成invoke原创 2020-06-02 18:50:14 · 264 阅读 · 0 评论 -
dubbo调用过程
完成了服务的初始化之后,生成了代理,生成的动态代理类对接口的方法进行了包装,每次调用都会调用到InvocationHandler的invoke()方法,此方法中会进行远程服务调用一些列复杂过程,诸如网络通信,编码,解码,序列化等,然后将结果返回。在InvokerInvocationHandler.invoker()方法中,最后调用invoker.invoke(new RpcInvocation(m...转载 2020-05-08 15:24:06 · 303 阅读 · 0 评论 -
4-dubbo服务导入
1. 简介上一篇文章详细分析了服务导出的过程,本篇文章我们趁热打铁,继续分析服务引用过程。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的场景下使用,不适合在线上环境使用。因此,本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用过程中的一环,除此之外,...转载 2020-05-09 15:10:01 · 516 阅读 · 0 评论 -
3-dubbo服务导出
1.简介本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装 URL。第二部分是导出服务,包含导出服务到本地 (JVM),和导出服务到远程两个过程。第三部分是向注册中心注册服务,用于服务发现。本篇文章将会对这三...转载 2020-05-09 15:10:10 · 420 阅读 · 0 评论 -
2-dubbo自扩展适应
1.原理在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并不想在框架启动阶段被加载,而是希望在拓展方法被调用时,根据运行时参数进行加载。这听起来有些矛盾。拓展未被加载,那么拓展方法就无法被调用(静态方法除外)。拓展方法未被调用,拓展就无法被加载。对于这个矛盾的问题,Dubbo 通过自适应拓展机制很好...转载 2020-05-09 15:10:41 · 382 阅读 · 0 评论 -
1-dubboSPI
1.简介SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。...转载 2020-05-09 15:10:19 · 90 阅读 · 0 评论 -
5-dubbo服务字典
1. 简介本篇文章,将开始分析 Dubbo 集群容错方面的源码。集群容错源码包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance。这几个部分的源码逻辑相对比较独立,我们将会分四篇文章进行分析。本篇文章作为集群容错的开篇文章,将和大家一起分析服务目录相关的源码。在进行深入分析之前,我们先来了解一下服务目录是什么。服务目...转载 2020-05-09 15:12:53 · 144 阅读 · 0 评论 -
6-dubbo路由配置
1. 简介上一篇文章分析了集群容错的第一部分 — 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在详细分析服务路由的源码之前,先来介绍一下服务路由是什么。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分...转载 2020-05-09 15:09:52 · 509 阅读 · 0 评论 -
7-dubbo集群
1.简介为了避免单点故障,现在的应用通常至少会部署在两台服务器上。对于一些负载比较高的服务,会部署更多的服务器。这样,在同一环境下的服务提供者数量会大于1。对于服务消费者来说,同一环境下出现了多个服务提供者。这时会出现一个问题,服务消费者需要决定选择哪个服务提供者进行调用。另外服务调用失败时的处理措施也是需要考虑的,是重试呢,还是抛出异常,亦或是只打印异常等。为了处理这些问题,Dubbo 定义...转载 2020-05-09 15:09:39 · 136 阅读 · 0 评论 -
8-dubbo负载均衡
1.简介LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中,一般很难接触到硬件负载均衡。但软件负载均衡...转载 2020-05-09 15:09:23 · 117 阅读 · 0 评论 -
9-dubbo服务调用
1. 简介在前面的文章中,我们分析了 Dubbo SPI、服务导出与引入、以及集群容错方面的代码。经过前文的铺垫,本篇文章我们终于可以分析服务调用过程了。Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。限于篇幅原因,本篇文章无法对所有的步骤一一进行分析。本篇文章将会重点分析请求的发送与接收、编解码、线程派发以及响...转载 2020-05-09 15:09:14 · 336 阅读 · 0 评论 -
dubbo基础概念
一:单一应用框架1.当流量较小,只需一个应用的时候,将所有应用部署到一个服务器上面,减少节点和节约成本2.此时,用于简化数据库增删改查的工作量,数据访问框架(ORM)是关键二:垂直应用框架1.当使用量增加时,单一应用服务器无法满足需求,会应用拆分为把不相干的几个子应用,以提高效率2.此时,用于加速前段页面的WEB框架是关键三:分布式服务框架1.当垂直应用 越...原创 2020-05-02 10:30:58 · 95 阅读 · 0 评论 -
Dubbo之ExtensionLoader类加载器
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding cop...原创 2020-04-28 16:55:02 · 459 阅读 · 0 评论