Dubbo-阿里巴巴公司的产物,为了实现SOA(面向服务的体系架构)的工具。本人对阿里技术一直在关注中,同时也为后面的工作增加储备。因此决定进入Dubbo中,去探索一下。在网上看了其他朋友写的文章后,感觉自己还是处在云里雾里中,所以打算自己写点内容,一是整理思路;二是记录一下自己的心得,以后好实时查看。好记性不如烂笔头嘛。
Dubbo涉及到的知识还是很多的,所以自己先不进入源码,首先看看和整理一下涉及到的知识。先把外围阵地肃清了,在进入核心阵地!
外围:
1:JDK动态代理:
这个可以参考一下网址:http://blog.jobbole.com/104433/。(谢谢作者:@伯乐在线 - 寻找"四叶草" )里面写的很详细还附带了JDK源码的分析。
2:Javassist(Java字节码生成开源框架):
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.CtNewMethod;
public class MyJavassist {
public static void main(String[] args) throws Exception {
ClassPool pool = ClassPool.getDefault();
//创建Test类
CtClass cc= pool.makeClass("com.jishuaige.Test");
//定义test方法
CtMethod method = CtNewMethod.make("public void test(){}", cc);
//插入方法代码
method.insertBefore("System.out.println(\"test.....\");");
cc.addMethod(method);
cc.writeFile("d://myJavassist");
}
}
3:Java spi机制(重点):
Java的SPI(Service Provider Interface)提供的机制:我们定义服务的接口标准,让各个实现人员按照接口标准完成各自的实现。
JDK通过ServiceLoader来查找各个实现类,它会遍历所有jar包查找META-INF/services目录下的文件内容,来加载各个实现类,这有点类似IOC的思想,动态的注入实现类。
使用SPI必须遵循它的标准:1)创建文件夹:META-INF/service,放在classpath下。2)META-INF/service下放置配置文件,文件名称必须是被实现接口的全路径。
ServiceLoader的缺点:1)ServiceLoader使用延迟加载,全部加载一遍接口的实现类。如果你并不想用某些实现类,但它也被加载并实例化了,这点就很不爽了,我要使用什么就加载什么三。2)获取某个实现类的方式不够方便,只能通过Iterator形式获取。
好了,这里大概介绍了一下我现在看到和了解到的外围知识(后面深入的时候再回来补充,也欢迎大家共同分析)
下面开始进入dubbo:dubbo里面是怎么使用SPI的。
分享到:
相关推荐
dubbo-admin安装要点: 1.清空tomcat/webapps/ROOT目录 2.将包解压到tomcat/webapps/ROOT下 3.修改tomcat/webapps/ROOT/WEB-INF/dubbo.properties 文件 dubbo.registry.address dubbo接口服务注册地址: 单机...
dubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo-2.7.3.rardubbo源码dubbo-dubbo...
【标题】"incubator-dubbo-dubbo-2.5.8" 是一个基于Java的开源服务框架,由Apache孵化器项目提供。这个版本是Dubbo的2.5.8稳定版,它包含了Dubbo的核心服务治理功能以及一个专门的管理平台——dubbo-admin。 【描述...
【标题】"dubbo-admin-2.5.4.war" 指的是 Dubbo 提供的一款基于 Web 的管理控制台应用,版本为 2.5.4。这个 WAR 文件是一种打包好的 Java Web 应用程序,可以在支持 Java Servlet 的容器(如 Apache Tomcat)上部署...
而dubbo-admin是Dubbo框架的一部分,它提供了一个管理控制台,允许开发者监控和管理服务的运行状态,包括服务的注册、发现、调用统计等。本文将详细讨论如何解决dubbo-admin的下载问题,特别是针对之前可能出现的...
本篇将详细讲解基于dubbo-demo-consumer、dubbo-demo-provider和dubbo-simple-monitor的实例服务,带你深入理解Dubbo的核心概念和操作流程。 首先,我们来看`dubbo-demo-consumer`,它是Dubbo服务的消费者。消费者...
【标题】"dubbo-admin包"是Dubbo框架的一个重要组成部分,主要用作服务治理的管理界面。这个压缩包包含了运行Dubbo管理控制台所需的所有文件,使得开发者和运维人员可以方便地监控、管理和配置Dubbo服务。 【描述】...
- **Dubbo-Admin**:这是一个基于Web的管理控制台,用户可以通过它来查看、管理以及操作Dubbo服务。它提供了服务注册、服务查询、服务调用监控、服务配置管理等功能,方便开发者进行日常运维工作。 - **Dubbo-...
【标题】"incubator-dubbo-dubbo-2.6.1" 是一个Apache Incubator项目Dubbo的特定版本,这里的2.6.1表示该版本是Dubbo的稳定分支之一。 【描述】提到的"incubator-dubbo-dubbo-2.6.1"表明这是Apache孵化器中的Dubbo...
dobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo-2.7.3.rardobbo源码dubbo-dubbo...
其中,`dubbo-admin`是Dubbo的核心组件之一,它提供了一个可视化的管理控制台,帮助开发者对服务进行管理和监控。本文将详细解析`dubbo-admin-2.5.4.war`这个版本的后台管理工具,探讨其主要特性和使用方法。 首先...
其中,`dubbo-monitor-simple`是Dubbo官方提供的一个简单的监控实现,用于展示服务的调用统计信息。本文将详细介绍`dubbo-monitor-simple-2.5.8`版本的相关知识点。 一、Dubbo监控概述 Dubbo的监控体系主要包括...
jmeter的dubbo插件,jmeter-plugins-dubbo-2.7.8-jar-with-dependencies.jar,适用于JMeter5.4.1版本,将解压后的文件jmeter-plugins-dubbo-2.7.8-jar-with-dependencies放在Jmeter安装目录下的\lib\ext文件夹中,...
dubbo-admin打包后的文件,扔到tomcat里就能跑起来!dubbo-admin打包后的文件,扔到tomcat里就能跑起来!dubbo-admin打包后的文件,扔到tomcat里就能跑起来!
本文将深入探讨“jmeter-plugins-dubbo-2.7.1-jar-with-dependencies”这一系统压测工具包,它专门针对基于Java的Dubbo服务进行性能测试。了解并熟练掌握这一工具,能帮助我们更好地优化服务性能,提升系统的稳定性...
【标题】"dubbo-admin包"是Dubbo项目的一个重要组成部分,主要提供了管理控制台的功能。这个特定的版本,"dubbo-admin.war",是根据GitHub上的Dubbo源代码编译并打包而成的,确保了其与最新的开发成果同步,并且已经...
【标题】"dubbo-admin-2.6.0下载"涉及的是Dubbo管理控制台的2.6.0版本,这是一个用于监控和管理Dubbo服务的重要工具。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java远程服务调用框架,它提供服务治理、监控等能力...
dubbo官方自带了dubbo-admin及dubbo-simple/dubbo-monitor-simple二个子项目用于服务治理及服务监控。 dubbo-monitor-simple是Alibaba的开源项目,用于监控在dubbo框架下接口暴露,注册情况,也可以看接口的调用...
【标题】"dubbo-admin dubbo-monitor.zip 2.8.4可用" 指的是一个包含Dubbo管理工具和监控模块的压缩包文件,版本为2.8.4,适用于Dubbo框架的管理和监控需求。 【描述】"dubbo-admin.zip dubbo-monitor.zip; 包含 ...