1、stub:存根,桩,模拟的代理远端的服务,可以附加容错等功能。
2、消费方 stub: 内部使用proxy,提供容错等机制,配置时使用stub
<dubbo:reference id="userService" interface="org.huxin.dubbo.test.user.service.UserInterface"
stub="org.huxin.dubbo.test.UserServiceStub" protocol="dubbo"/>
public class UserServiceStub implements UserInterface {
//必须定义这个接口,以便接收dubbo在调用远程服务生成的服务代理类
private UserInterface userLocalService ;
//这个构造函数必须要提供,dubbo框架会在消费者这一方调用这个方法
public UserServiceStub(UserInterface userLocalService ) {
this.userLocalService = userLocalService ;
}
public User getUserById(Integer id) {
User user = null ;
try {
if (id == 1) {
user = this.userLocalService.getUserById(id) ;
}else {
user = new User();
user.setName("系统用户");
}
}catch(Exception e) {
user = new User();
user.setName("异常用户");
}
return user ;
}
}
3、架构
1》每个client 每个server 分别与zookeeper连接,并进行心跳检测,同时维护每个service的地址列表,和对应的client列表
2》 client从zookeeper通过服务名获取所有服务进程,并分别建立连接;server有变化时,zookeeper同步变化给client。调用时客户端负载均衡。
3》 server 注册自己到zk
4、分层架构
Serialize 序列化和工具
Transport 封装netty
Exchange 同步转异步,封装Request和Response
Protocol 封装Invocation和Result,扩展接口为Protocol、Invoker和Exporter
Monitor 监控次数和时间、
Cluster 负载均衡
Registry 注册,中心是URL
Proxy 接口的代理,
Config 服务的配置
service 具体业务逻辑
核心是exchange protocol,proxy
5、调用过程
com.alibaba.dubbo.common.bytecode.proxy-->InvokerInvocationHandler -->MockClusterInvoker-->FailoverClusterInvoker-->route规则-->DubboInvoker-->exchanger->Filterchain
ConsumerContextFilter->MonitorFilter->FutureFilter
6、暴露服务的过程
ClassPathXmlApplicationContext refresh-->ServiceConfig doExportUrlsFor1Protocol()
init bind -->Exporter --> url:invoker-->Wrapper(serviceImpl)
相关推荐
一、Dubbo概览 Dubbo的核心理念是服务化,它提供了服务注册、服务发现、负载均衡、容错处理等关键特性。在Dubbo中,服务提供者(Producer)暴露服务,而服务消费者(Consumer)调用这些服务。通过配置文件,我们...
一、Dubbo概览 Dubbo的核心特性包括服务治理、负载均衡、故障切换、监控等。它通过接口定义服务,实现了服务的消费者和服务提供者的解耦,使得服务调用如同本地方法调用一样简单。Dubbo支持多种通信协议,如HTTP、...
#### 一、Dubbo 概览 **1.1 什么是Dubbo** Dubbo是由阿里巴巴开源的一款分布式服务框架,它的主要目标是提供一个高性能且透明化的RPC(Remote Procedure Call)远程服务调用解决方案。Dubbo在阿里巴巴内部已经得到...
#### 一、Apache Dubbo概览 **Apache Dubbo**是一款高性能、轻量级的开源微服务框架,最初由阿里巴巴内部开发并在2008年开始使用,随后在2011年开源。自2017年加入Apache孵化器以来,Dubbo已经成为了一个顶级项目,...
### Dubbo高级视频教程知识点概览 #### 一、Dubbo概述与分布式系统基础 - **Dubbo简介**:Dubbo是一款高性能、轻量级的开源Java RPC框架,旨在为服务治理提供简单、全面的解决方案。 - **分布式系统概念**:分布式...
一、Dubbo架构概览 Dubbo的核心架构基于服务提供者(Provider)、消费者(Consumer)、注册中心(Registry)和服务监控(Monitor)四大部分构建。Provider暴露服务,Consumer调用服务,Registry负责服务的注册与...
一、Dubbo架构概览 1.1 服务提供者(Provider) 服务提供者是Dubbo服务的发布方,它将服务注册到注册中心,供消费者调用。源码中,`com.alibaba.dubbo.rpc.service.GenericService`是所有服务接口的基类,定义了...
三、Dubbo培训PPT内容概览 1. Dubbo简介:介绍Dubbo的起源、特点、架构以及适用场景。 2. 快速入门:讲解如何搭建一个简单的Dubbo项目,包括服务提供者和服务消费者的创建。 3. 配置详解:深入解析Dubbo的各种配置...
### Dubbo 2.0 源码阅读关键知识点概览 #### 一、源码阅读预备知识 在深入理解Dubbo源码之前,需要掌握一系列基础知识,这将有助于更好地理解Dubbo的设计与实现。 1. **Java语言编程**:熟悉Java语言的基本语法和...
### 视频教程内容概览 该视频教程作为2018年的最新版本,不仅涵盖了Dubbo的核心概念和技术细节,还特别强调了实践操作的重要性。教程内容主要分为以下几个方面: 1. **基础知识讲解**:首先介绍了Dubbo的基本原理...
##### 2.1 架构概览 Dubbo采用了典型的客户端-服务器模型。主要包括以下几种角色: 1. **Provider(服务提供者)**:暴露服务的应用方。 2. **Consumer(服务消费者)**:调用远程服务的应用方。 3. **Registry...
3. 源文件概述:对源码的各个模块和文件有一个概览,明白它们的作用和相互关系。 4. 核心机制分析:详细分析Dubbo的设计模式、Bean加载、扩展机制、代理、远程调用流程等核心机制。 5. 设计模式:Dubbo的设计模式...
Dubbo架构概览 Dubbo的架构主要包括服务提供者(Provider)、服务消费者(Consumer)、服务注册中心(Registry)和服务监控中心(Monitor)四大部分。Provider发布服务,Consumer消费服务,Registry负责服务的注册...
### Dubbo源码解析知识点概览 #### 一、Dubbo简介与背景 - **背景**:Apache Dubbo是一款高性能、轻量级的开源服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。Dubbo版本2.01在...
下面是Dubbo的概览: - Dubbo由阿里巴巴集团开发并开源,最早是作为阿里中间件团队内部的一个RPC框架使用。 - Dubbo的目标是提供一个高性能的分布式服务框架,使得应用程序可以通过远程调用快速、安全地通信,并...
一、Dubbo架构概览 Dubbo的核心组件包括服务提供者(Provider)、服务消费者(Consumer)、注册中心(Registry)和服务监控(Monitor)。Provider暴露服务,Consumer调用服务,两者通过Registry进行连接,Monitor则...
#### 一、Dubbo框架概览与SPI机制 **Dubbo**作为一款高性能、轻量级的微服务框架,在分布式系统领域有着广泛的应用。其核心特性之一是采用了微内核+插件体系的设计理念,使得整体架构既灵活又易于扩展。在这一设计...
#### 分布式系统与Dubbo框架概览 在当今互联网技术迅速发展的背景下,分布式系统已成为处理大规模数据和提供高可用服务的关键技术之一。分布式系统通过将应用程序拆分成多个独立的服务来提高系统的可扩展性和灵活性...
#### 二、视频教程内容概览 - **基础知识**:包括Dubbo的基本概念介绍、安装部署指导等。 - **核心功能详解**:深入讲解Dubbo的核心组件及其工作原理,如Provider、Consumer、Registry、Monitor等。 - **高级特性**...
#### 七、内置功能概览 Dubbo除了提供了基本的服务框架支持外,还集成了许多实用的功能,如用户管理、机构管理、区域管理、菜单管理等,为开发者提供了全面的应用支持。 #### 八、技术栈与开发工具 - **后端技术...