Dubbo 常用模型
先了解如下几个概念
Invoker
Invoker 是实体域,它是 Dubbo 的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现;
Invoker 代表一个可执行对象,可以是本地执行类的Invoker,比如provider端的服务实现类,通过反射实现最终的调用;也可以是一个远程通信执行类的Invoker,consumer端通过接口与provider端进行远程通信,provider端利用本地Invoker执行相应的方法并返回结果;还可以是聚合Invoker,consumer调用端可以将多个Invoker聚合成一个Invoker执行操作;
Protocol
Protocol 是服务域,它是 Invoker 暴露和引用的主功能入口,它负责 Invoker 的生命周期管理;
通信协议,默认的Protocol是DubboProtocol,通过Protocol创建Invoker对象,默认也就是DubboInvoker;
ProxyFactory
对于Consumer端来说通过ProxyFactory创建调用接口的代理对象,对于Provider端来说主要是包装本地执行的Invoker类;ProxyFactory接口的实现类有JdkProxyFactory和JavassistProxyFactory,而默认是JavassistProxyFactory;JdkProxyFactory是利用JDK自带的Proxy来动态代理目标对象的远程通信Invoker类;JavassistProxyFactory是利用Javassit字节码技术来创建的远程通信Invoker类;
Invocation
Invocation 是会话域,它持有调用过程中的变量,比如方法名,参数等;
URL
在Dubbo中,服务,注册中心,消费者,配置信息,元数据(元数据信息包括服务接口,及接口的方法信息)都可用URL表示为资源;Dubbo中URL 作为配置信息的统一格式,URL在Dubbo中被当作公共契约,所有扩展点都通过传递 URL 携带配置信息;
Dubbo 常用模型的更多相关文章
- Dubbo(四):深入理解Dubbo核心模型Invoker
一.Dubbo中Invoker介绍 为什么说Invoker是Dubbo核心模型呢? Invoker是Dubbo中的实体域,也就是真实存在的.其他模型都向它靠拢或转换成它,它也就代表一个可执行体,可向它 ...
- 简单介绍一下R中的几种统计分布及常用模型
统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...
- 第十章 dubbo线程模型
一 netty的线程模型 在netty中存在两种线程:boss线程和worker线程. 1 boss线程 作用: accept客户端的连接: 将接收到的连接注册到一个worker线程上 个数: 通常情 ...
- dubbo线程模型配置
首先了解一下dubbo线程模型 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识.则直接在IO线程上处理更快,因为减少了线程池调度. 但如果事件处理逻辑较慢,或者需要发 ...
- Dubbo入门到精通学习笔记(十一):Dubbo服务启动依赖检查、Dubbo负载均衡策略、Dubbo线程模型(结合Linux线程数限制配置的实战分享)
文章目录 Dubbo服务启动依赖检查 Dubbo负载均衡策略 Dubbo线程模型(结合Linux线程数限制配置的实战分享) 实战经验分享( ** 属用性能调优**): Dubbo服务启动依赖检查 Du ...
- Dubbo常用配置文件分析及核心源码阅读(SPI.Extension)
1.多版本支持: 基于上篇博客的 快速启动 Dubbo 服务 的代码进行多版本支持的演示:基于原来的实现类GpHelloImpl ,我们需要新增一个新版本的实类:GpHelloImpl2 public ...
- dubbo系列二:dubbo常用功能总结
准备工作: (1)启动zookeeper作为dubbo的注册中心 (2)新建一个maven的生产者web工程dubbo-provider-web和一个maven的消费者web工程dubbo-consu ...
- deep learning 以及deep learning 常用模型和方法
首先为什么会有Deep learning,我们得到一个结论就是Deep learning需要多层来获得更抽象的特征表达. 1.Deep learning与Neural Network 深度学习是机器学 ...
- Dubbo(2)--Dubbo常用配置文件解析及核心源码阅读
1.多版本支持 服务端 创建第二个接口实现类 package com.lf; public class HelloImpl2 implements IHello{ @Override public S ...
随机推荐
- JVM--堆是分配对象的唯一选择么?
在<深入理解Java虚拟机>中关于Java堆内存有这样一段描述:随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配.标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐 ...
- PyCharm2020.2.1激活方法
本人亲测有效!直接看图! 安装准备 一.百度网盘链接:https://pan.baidu.com/s/151vnrZG2V4eMPW8RYqse3w 提取码:z5k0 至于Pycharm的安装在这 ...
- Java面试之Java基础问题答案口述整理
Java面试之基础问题答案口述整理 面向对象的理解 面向对象思想就是在计算机程序设计过程中,把具体事物的属性特性和行为特征抽象出来,描述成计算机事件的设计思想.它区别于面向过程的思想,强调的是通过调用 ...
- CSS 常见样式 特殊用法 贯穿线&徽章&箭头
### 贯穿渐变线,中间插值- 如图: >  ![在这里插入图片描述 ...
- tomact在windows系统下安装
一.下载 下载地址: https://tomcat.apache.org/download-90.cgi 7,8,9的版本都可以下,这里下载最新版本 注意:Binary是编译好的,可以直接使用的版本, ...
- python:一切皆对象
学过java语言的童鞋都知道,java是一门面向对象语言,其基本思想就是一切皆对象.Python也是一样的,甚至Python将面向对象思想贯彻地更加彻底,因为在Python中,class本身是一个 ...
- Git裸仓库的分支(Active Branch)切换
Git裸仓库的Active Branch切换方法 在服务器上通过init --bare创建了一个裸仓库作为远程仓库使用,并且存在三个分支(master/kid/develop),但在使用中发现代码虽然 ...
- (最新 9000 字 )Spring Boot 配置特性解析
爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方.本文 架构技术专栏 已收录,有各种JVM.多线程.源码视频.资料以及技术文章等你来拿 一.概述 目前Spring Boot版本: 2. ...
- 精心总结ansible-playbook剧本的这6种变量
#变量作用 #根据需求灵活修改,如:需要安装不同版本号的服务,或进行版本升级回退等 1.通过vars定义变量 #1.1.定义一个变量 version: 1.1.2 #定义多个变量 vars: - v1 ...
- Hadoop框架:集群模式下分布式环境搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...