必须依赖
缺省依赖(即系统默认状态)
- 经过 mvn dependency:tree > dep.log 命令分析,Dubbo 缺省依赖如下三方库:
[INFO] +- com.alibaba:dubbo:jar:2.5.9-SNAPSHOT:compile
[INFO] | +- org.springframework:spring-context:jar:4.3.10.RELEASE:compile
[INFO] | +- org.javassist:javassist:jar:3.21.0-GA:compile
[INFO] | \- org.jboss.netty:netty:jar:3.2.5.Final:compile
复制代码
- 这里全部依赖都是换照 Dubbo 缺省配置选的,这些缺省值是基于稳定性和性能考虑的。
- javassist.jar [2]: 若是 <dubbo:provider proxy="jdk" /> 或 <dubbo:consumer proxy="jdk" />,以及 <dubbo:application compiler="jdk" />,则不须要。
- spring-context.jar [3]: 若是用 ServiceConfig 和 ReferenceConfig 的 API 调用,则不须要。
- netty.jar [4]: 若是 <dubbo:protocol server="mina"/> 或 <dubbo:protocol server="grizzly"/>,则换成 mina.jar 或 grizzly.jar。若是 ,则不须要。
可选依赖
- 如下依赖,在主动配置使用相应实现策略时用到,需自行加入依赖。
- netty-all 4.0.35.Final
- mina: 1.1.7 (Apache Mina Server 是一个网络通讯应用框架)
- grizzly: 2.1.4 (Grizzly是一种应用程序框架,专门解决编写成千上万用户访问服务器时候产生的各类问题。使用JAVA NIO做为基础,并隐藏其编程的复杂性)
- httpclient: 4.5.3
- hessian_lite: 3.2.1-fixed
- fastjson: 1.2.31
- zookeeper: 3.4.9
- jedis: 2.9.0
- xmemcached: 1.3.6
- hessian: 4.0.38 (Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。)
- jetty: 6.1.26
- hibernate-validator: 5.4.1.Final
- zkclient: 0.2
- curator: 2.12.0 (Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量。)
- cxf: 3.0.14
- thrift: 0.8.0 (Thrift是一种接口描述语言和二进制通信协议,它被用来定义和建立跨语言的服务。)
- servlet: 3.0 [5]
- validation-api: 1.1.0.GA [5:1]
- jcache: 1.0.0 [5:2]
- javax.el: 3.0.1-b08 [5:3]
- kryo: 4.0.1 ( kryo是一个高性能的序列化/反序列化工具,因为其变长存储特性并使用了字节码生成机制,拥有较高的运行速度和较小的体积。 )
- kryo-serializers: 0.42
- fst: 2.48-jdk-6
- resteasy: 3.0.19.Final (RESTEasy是JBoss的开源项目之一,是一个RESTful Web Services框架。)
- tomcat-embed-core: 8.0.11
- slf4j: 1.7.25
- log4j: 1.2.16
注:
-
- 理论上 Dubbo 能够只依赖 JDK,不依赖于任何三方库运行,只需配置使用 JDK 相关实现策略
-
- 字节码生成
-
- 配置解析
-
- 网络传输
-
- JEE