草庐IT

Dubbo源码(九) - 服务调用过程

1.前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo源码分析均基于官方Demo,路径:dubbo/dubbo-demo如果没有看过之前Dubbo系列的文章,建议先去看看。因为服务调用过程涉及范围较广,需要那些前置知识。Dubbo服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。限于篇幅原因,本篇文章无法对所有的步骤一一进行分析。后续挖坑再说吧。本篇文章将会重点分析请求的发送与接收、线程派发以及响应的发送与接收等过程。2.源码分析先了解下Dubbo服务调用过程(图片来自官方文档

What's new in Dubbo 3.1.5 and 3.2.0-beta.4

在1月27日,新年伊始,Dubbo3.1.5和3.2.0-beta.4正式通过投票发布。本文将介绍发布的变化一览。Dubbo3.1.5版本是目前Dubbo3的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。Dubbo3.2.0-beta.4版本是目前Dubbo3的最新特性版本,包括了如SpringBoot3、JDK17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。Dubbo3.1.5新特性DubboQoS支持记录请求的记录,便于进行审计支持在服务映射失败以后定时进行重试,降低由于元数据中心抖动带来的影响支持在初始化NacosClient的时候进行健康检查,如果失败则在一定次数

What's new in Dubbo 3.1.5 and 3.2.0-beta.4

在1月27日,新年伊始,Dubbo3.1.5和3.2.0-beta.4正式通过投票发布。本文将介绍发布的变化一览。Dubbo3.1.5版本是目前Dubbo3的最新稳定版本,我们建议所有的用户都升级到最新的稳定版本。Dubbo3.2.0-beta.4版本是目前Dubbo3的最新特性版本,包括了如SpringBoot3、JDK17、服务粒度的线程池隔离等新特性的支持,欢迎大家尝鲜使用。Dubbo3.1.5新特性DubboQoS支持记录请求的记录,便于进行审计支持在服务映射失败以后定时进行重试,降低由于元数据中心抖动带来的影响支持在初始化NacosClient的时候进行健康检查,如果失败则在一定次数

Dubbo 入门系列之快速部署一个微服务应用

本文将基于DubboSamples示例演示如何快速搭建并部署一个微服务应用。背景Dubbo作为一款微服务框架,最重要的是向用户提供跨进程的RPC远程调用能力。如上图所示,Dubbo的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。为了实现这样一个目标,Dubbo引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。目标了解微服务调用的方式以及Dubbo的能力难度低环境要求系统:Windows、Linux、MacOSJDK8及以上(推荐使用JDK17)GitDocker(可选)动

Dubbo 入门系列之快速部署一个微服务应用

本文将基于DubboSamples示例演示如何快速搭建并部署一个微服务应用。背景Dubbo作为一款微服务框架,最重要的是向用户提供跨进程的RPC远程调用能力。如上图所示,Dubbo的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。为了实现这样一个目标,Dubbo引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。目标了解微服务调用的方式以及Dubbo的能力难度低环境要求系统:Windows、Linux、MacOSJDK8及以上(推荐使用JDK17)GitDocker(可选)动

Dubbo源码(六) - 服务路由

前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊点短的,服务路由Router,本文讲的是路由的调用路径,不讲路由的规则解析。想了解规则解析的可以去官方文档:服务路由Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。怎么用我们可以在服务治理控制台Dubbo-Admin写入路由规则。安装Dubbo-Admin我是使用docker方式安装的,命令如下:dockerrun-d\-p9001:8080\-eadmin.root.user.name=admin\-eadmin.root.user.password=adm

Dubbo源码(六) - 服务路由

前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊点短的,服务路由Router,本文讲的是路由的调用路径,不讲路由的规则解析。想了解规则解析的可以去官方文档:服务路由Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。怎么用我们可以在服务治理控制台Dubbo-Admin写入路由规则。安装Dubbo-Admin我是使用docker方式安装的,命令如下:dockerrun-d\-p9001:8080\-eadmin.root.user.name=admin\-eadmin.root.user.password=adm

Dubbo源码(五) - 服务目录

前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊聊Dubbo的服务目录(Directory)。下面是官方文档对服务目录的定义:服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如ip、端口、服务协议等。服务目录持有Invoker对象集合,Dubbo的服务调用均由Invoker发起。当服务提供者信息发生变化时(比如某一个服务挂了),服务目录也需要动态调整。继承体系服务目录目前内置的实现有两个,分别为StaticDirectory和RegistryDirectory。它们均继承自Abstra

Dubbo源码(五) - 服务目录

前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊聊Dubbo的服务目录(Directory)。下面是官方文档对服务目录的定义:服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如ip、端口、服务协议等。服务目录持有Invoker对象集合,Dubbo的服务调用均由Invoker发起。当服务提供者信息发生变化时(比如某一个服务挂了),服务目录也需要动态调整。继承体系服务目录目前内置的实现有两个,分别为StaticDirectory和RegistryDirectory。它们均继承自Abstra

Dubbo源码(四) - 服务引用(消费者)

前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo上一篇文章,讲了Dubbo的服务导出:Dubbo源码(三)-服务导出(生产者)本文,咱们来聊聊Dubbo的服务引用。本文案例来自Dubbo官方Demo,路径为:dubbo/dubbo-demo/dubbo-demo-consumer/服务引用原理Dubbo服务引用对象的生成,是在ReferenceBean#getObject()方法中其生成时机有两个:饿汉式ReferenceBean对象继承了InitializingBean接口publicvoidafterPropertiesSet()thro